Цикл статей про Angular
Оглавление статей
Мы начали использовать Angular (в то время Angular 2) на одном из проектов нашей компании примерно в сентябре 2016 года. Тогда он только вышел из беты. За плечами у нас не было опыта использования никакого фреймворка, разве что Backbone, но фреймворком его можно назвать лишь с натяжкой. Проект же требовал довольно развесистого веб-приложения. Мы немного пощупали Ember, посмотрели на React, даже попытались воспользоваться Backbone+Marionette, но в итоге остановились на Angular. Порой он причинял нам боль, порой мы упирались в совершенно необъяснимое поведение. С трудом перешли на 4 версию, чуть менее кроваво на 5. Но, несмотря на все трудности, я ни разу не пожалел об этом выборе.
И вот теперь, спустя более чем 2,5 года, хочется собрать воедино то, чему мы научились за это время. Вообще, у Angular прекрасная документация на официальном сайте, но в ней раскрываются далеко не все тонкости его использования, не говоря уже о тонкостях смежных инструментов, таких как RxJS, Zone.js и Angular-CLI. Также некоторые моменты упоминаются лишь вскользь, скрывая подробности. Многие вещи находились нами в задачах на GitHub, в обсуждениях на Stack Overflow, в комментариях к статьям на различных ресурсах. Находилось, терялось, находилось заново, тонуло в истории чатов, порой устаревало и портило нам кровь при обновлении. Так что было решено сделать цикл статей, посвящённых этому замечательному фреймворку и всему, что с ним связано.
Это заголовочный пост, в котором я буду собирать ссылки на остальные посты и на который буду из них ссылаться. Этот цикл статей вряд ли будет связан и его не надо воспринимать как этакую блог-книгу, хотя буду стараться и в этом направлении тоже. А пока вот примерное оглавление этого цикла:
- Первый проект — создаём новый проект и разбираемся что там и для чего.
- Компоненты, сервисы и модули — что такое компоненты, директивы, сервисы, каналы и модули. Когда что использовать.
- Язык шаблонов — по сути переизложение того, что есть в официальной документации, только на русском.
- Пишем свою структурную директиву — директивы, меняющие разметку.
- Канал он же Pipe — что такое чистые каналы и от чего они пачкаются. Передача параметров и прочее.
- Достучаться до потомка — различные способы получать вложенные элементы.
- Ренедерер и различные указатели — почему и для чего существуют все эти
ElementRef
иTemplateRef
, почему не вернуть нормальныйHTMLElement
. - Шаблонное программирование — передача шаблонов, контексты и оутлеты.
- Формоформирование — о том как строить формы, валидировать, обрабатывать, инициировать, очищать и прочее.
- Пишем свой контрол — напишем свой
select
с древовидной структурой, поиском, фильтрацией и валидацией. - Роутинг — где и как прописывать роутинг, как передавать параметры, ленивая подгрузка, гварды и иже с ними.
- Модули — хитрости написания и подключения модуля.
- Внедрение зависимостей — о том как работает внедрение зависимостей, как подменять и расширять системные сервисы.
- Грузите апельсины бочками — или о том как обмениваться информацией между различными компонентами.
- Пишем свой декоратор — изучаем такую фичу TypeScript как декоратор.
- Больше стектрейсов, длинных и красных — о том что такое
Zone.js
, откуда у него растут ноги и как его можно применять. - Хитрости и рецепты использования RxJS — набор полезных рецептов, когда реактивное программирование решает задачу просто и красиво.
Постараюсь писать по статье в неделю, но не обещаю. Также возможно, что выходить статьи будут не по указанному порядку. Пишите предложения о том какие темы вы бы хотели увидеть ещё.