Компоненты
Фундаментальный строительный блок для создания приложений в Angular.
Компоненты — основные строительные блоки приложений Angular. Каждый компонент представляет часть более крупной веб-страницы. Организация приложения в компоненты помогает структурировать проект, чётко разделяя код на конкретные части, которые легко поддерживать и развивать со временем.
Определение компонента
У каждого компонента есть несколько основных частей:
- Декоратор
@Component, содержащий конфигурацию, используемую Angular. - HTML-шаблон, который управляет тем, что отрисовывается в DOM.
- CSS-селектор, определяющий, как компонент используется в HTML.
- Класс TypeScript с поведением, например обработкой ввода пользователя или запросами к серверу.
Вот упрощённый пример компонента UserProfile.
// user-profile.ts
@Component({
selector: 'user-profile',
template: `
<h1>User profile</h1>
<p>This is the user profile page</p>
`,
})
export class UserProfile {
/* Your component code goes here */
}
Декоратор @Component также опционально принимает свойство styles для любого CSS, который вы хотите применить к шаблону:
// user-profile.ts
@Component({
selector: 'user-profile',
template: `
<h1>User profile</h1>
<p>This is the user profile page</p>
`,
styles: `
h1 {
font-size: 3em;
}
`,
})
export class UserProfile {
/* Your component code goes here */
}
Разделение HTML и CSS в отдельные файлы
Вы можете определить HTML и CSS компонента в отдельных файлах с помощью templateUrl и styleUrl:
// user-profile.ts
@Component({
selector: 'user-profile',
templateUrl: 'user-profile.html',
styleUrl: 'user-profile.css',
})
export class UserProfile {
// Component behavior is defined in here
}
<!-- user-profile.html -->
<h1>User profile</h1>
<p>This is the user profile page</p>
/* user-profile.css */
h1 {
font-size: 3em;
}
Использование компонентов
Вы строите приложение, объединяя несколько компонентов. Например, при создании страницы профиля пользователя можно разбить страницу на несколько компонентов:
Здесь компонент UserProfile использует несколько других компонентов для формирования итоговой страницы.
Чтобы импортировать и использовать компонент, нужно:
- В TypeScript-файле компонента добавить оператор
importдля нужного компонента. - В декораторе
@Componentдобавить запись в массивimportsдля нужного компонента. - В шаблоне компонента добавить элемент, соответствующий селектору нужного компонента.
Вот пример компонента UserProfile, импортирующего компонент ProfilePhoto:
// user-profile.ts
import {ProfilePhoto} from 'profile-photo.ts';
@Component({
selector: 'user-profile',
imports: [ProfilePhoto],
template: `
<h1>User profile</h1>
<profile-photo />
<p>This is the user profile page</p>
`,
})
export class UserProfile {
// Component behavior is defined in here
}
СОВЕТ: Хотите узнать больше о компонентах Angular? См. Подробное руководство по компонентам для полной информации.
Следующий шаг
Теперь, когда вы знаете, как работают компоненты в Angular, пора узнать, как добавлять и управлять динамическими данными в приложении.