В основе Angular лежит архитектурный паттерн, на который стоит обратить внимание в первую очередь — это компонентно-ориентированный подход. Все, что вы видите в приложении (кнопка, форма, целая страница), — это компонент. Компонент — это автономный блок, объединяющий шаблон (HTML), стили (CSS) и логику (TypeScript класс). Представьте Lego: вы строите приложение, комбинируя эти переиспользуемые блоки. Каждый компонент имеет четко определенные входные данные (`@Input()`) и выходные события (`@Output()`), что делает интерфейсы между частями приложения ясными и предсказуемыми.
Но как компоненты получают данные? Здесь на сцену выходит вторая ключевая концепция — Dependency Injection (DI, внедрение зависимостей). Angular имеет мощный встроенный механизм DI. Вместо того чтобы создавать экземпляры сервисов (классов с бизнес-логикой, например, для работы с API) внутри компонента вручную, вы «просите» фреймворк предоставить их. Вы объявляете зависимость в конструкторе компонента, а Angular предоставляет нужный экземпляр из своего «контейнера». Это делает код тестируемым (легко подменить реальный сервис на mock-объект) и модульным.
Данные в приложении не статичны. Для управления состоянием и реактивностью Angular интегрирован с библиотекой RxJS, которая работает с потоками данных (Observables). Это одна из самых сложных, но и самых мощных частей фреймворка. На старте достаточно понять базовые операторы, такие как `subscribe` (подписаться на поток данных), `map` (преобразовать данные в потоке) и `async pipe` в шаблоне, который автоматически подписывается и отписывается от Observable.
Теперь перейдем к практическим шагам создания приложения с нуля. Первое — установка инструментов. Вам понадобится Node.js и npm. Установите Angular CLI глобально: `npm install -g @angular/cli`. CLI (Command Line Interface) — ваш лучший друг. Он создает проект, компоненты, сервисы, модули с правильной структурой и boilerplate-кодом.
Создайте новый проект: `ng new my-first-app`. CLI задаст несколько вопросов: добавлять ли Angular routing (да, это хорошая практика) и какой формат стилей использовать (CSS, SCSS и т.д.). После завершения зайдите в папку проекта и запустите `ng serve`. Откройте `localhost:4200` — вы увидите работающее приложение.
Разберите структуру проекта. Ключевые папки: `src/app` — здесь живет код вашего приложения. `src/app/app.component.*` — корневой компонент. `src/app/app.module.ts` — корневой модуль (NgModule). Модули в Angular — это способ организации приложения, группировки связанных компонентов, директив, пайпов и сервисов. В небольшом приложении может хватить одного корневого модуля.
Давайте создадим простой компонент «Список задач». Выполните в терминале: `ng generate component task-list` или короче `ng g c task-list`. CLI создаст папку `task-list` с четырьмя файлами (.ts, .html, .css, .spec.ts) и объявит компонент в модуле. Откройте `task-list.component.ts`. Вы увидите класс с декоратором `@Component`, где указан его селектор (`app-task-list`), путь к шаблону и стилям.
В файле класса определите массив задач: `tasks = ['Изучить Angular', 'Написать первый компонент', 'Разобраться с сервисами'];`. В HTML-шаблоне (`task-list.component.html`) выведите их с помощью директивы `*ngFor`: `
- {{ task }}
Комментарии (15)