Компонент является одним из наиболее важных строительных блоков приложения Angular. Компоненты — это многократно используемые фрагменты кода, которые составляют определенные разделы вашего сайта.
Примеры компонентов, которые вы можете создать, включают в себя более мелкие элементы пользовательского интерфейса, такие как кнопки или карточки. Они также могут включать в себя более крупные элементы пользовательского интерфейса, такие как боковые панели, панели навигации или целые страницы.
Использование компонентов в Angular
Когда вы создаете компоненты в приложении Angular, вы можете использовать их в других компонентах. Например, вы можете создать компонент для большого элемента карточки пользовательского интерфейса. Затем вы можете использовать этот компонент как обычный HTML-тег где угодно:
<приложение-новый-компонент></app-new-component>
Поскольку компоненты представляют собой многократно используемые фрагменты кода, вы также можете передавать переменные, чтобы данные для каждого экземпляра были разными. Вы также можете создавать компоненты для страниц, и вы можете соответствующим образом маршрутизировать их с помощью
приложение-routing.module.ts файл.Вы можете проектировать свои компоненты на основе структуры вашего приложения и того, насколько вы хотите разделить свою функциональность.
Как создать компонент
Вы можете использовать нгсгенерировать команду для создания нового компонента.
- Создать новый Угловое приложение с использованием новый или открыть существующий.
- Откройте командную строку или терминал. В качестве альтернативы, если ваше приложение Angular открыто в IDE, например Visual Studio Code, вы можете использовать встроенный терминал.
- В терминале перейдите к расположению корневой папки проекта. Например:
CD C:\Пользователи\Шарл\Рабочий стол\Угловое приложение
- Запустите нг генерировать компонент команда, за которой следует имя нового компонента:
ng сгенерировать компонент пользовательского интерфейса
- Новый компонент будет создан в новой папке внутри источник/приложение каталог.
Как добавить контент в компонент Angular
Angular создает каждый компонент с помощью файла HTML, CSS, TypeScript и спецификации тестирования.
- HTML-файл хранит HTML-контент компонента.
- CSS-файл сохраняет стиль компонента.
- Файл спецификации тестирования (spec.ts) хранит любые модульные тесты для компонента.
- TypeScript-файл хранит логику и функциональность, определяющие компонент.
Добавьте некоторый контент в пользовательский компонент пользовательского интерфейса.
- Открытым src/app/ui-card/ui-card.component.htmlи обновите HTML-код компонента. Убедитесь, что у вас есть изображение с таким же именем в папке с именем источник/активы/изображения в вашем приложении Angular. Заменить содержимое ui-card.component.html со следующим:
<раздел класс ="открытка">
<источник изображения ="./активы/изображения/голубые горы.jpg" альт="Аватар">
<раздел класс ="контейнер">
<h4 класс="заглавие"> Голубые горы </h4>
<п> Новый Южный Уэльс, Австралия </п>
</div>
</div> - Открытым пользовательский интерфейс-card.component.cssи добавьте содержимое CSS в компонент:
.открытка {
коробка-тень: 0 4пикс. 8пикс. 0 RGBA(0, 0, 0, 0.2);
ширина: 400пикс.;
набивка: 8пикс.;
поле: 24пикс.;
фоновый цвет: белый дым;
семейство шрифтов: без засечек;
}.открыткаизображение {
Максимальная ширина: 400пикс.;
}.заглавие {
обивка: 16пикс.;
}.контейнер {
набивка: 2пикс. 16пикс.;
} - ui-card.component.ts файл уже содержит класс для нового компонента, в который можно добавить новые функции, логику и функциональность. Это должно выглядеть так:
экспортучебный класс UiCardComponent реализует OnInit {
конструктор() { }
нгонинит(): пустота {
// Добавьте сюда немного логики кода
}
// Или добавьте свою логику и функциональность в новые функции
}
Как использовать компонент в HTML другого компонента
Внутри ui-card.component.ts, есть три атрибута: selector, templateUrl и styleUrl. templateUrl относится к HTML-коду компонента (и, следовательно, к HTML-файлу). Атрибут styleUrls относится к CSS компонента и ссылается на файл CSS.
@Составная часть({
селектор: 'app-ui-card',
Url-шаблона: './ui-card.component.html',
styleUrls: ['./ui-card.component.css']
})
Когда вы используете компонент карты пользовательского интерфейса в другом компоненте, вы будете использовать имя селектора «app-ui-card».
- Сначала добавьте контент на свою веб-страницу. Открытым источник/приложение/приложение.компонент.html и добавьте панель навигации:
<раздел класс ="навигационная панель-заголовок">
<класс ="навигационное название"><б> Веб-навигационная панель </ б></ а>
</div> - Добавьте стиль к вашей панели навигации в источник/приложение/приложение.компонент.css:
.navbar-заголовок {
фоновый цвет: #07393C;
набивка: 30пикс. 50пикс.;
отображать: сгибаться;
выравнивание элементов: центр;
семейство шрифтов: без засечек;
}.nav-название {
украшение текста: никто;
цвет: белый;
размер шрифта: 16пт;
} - Под панелью навигации в app.component.html, добавьте новую карточку пользовательского интерфейса. Используйте имя селектора «app-ui-card» в качестве тега HTML:
<приложение-UI-карта></app-ui-card>
- Вы также можете повторно использовать компонент, включив тег несколько раз. Для этого замените указанную выше строку на использование нескольких HTML-тегов app-ui-card:
<стиль div="дисплей: гибкий">
<приложение-UI-карта></app-ui-card>
<приложение-UI-карта></app-ui-card>
<приложение-UI-карта></app-ui-card>
</div> - Запустите приложение Angular из терминала, используя нг служить команду и откройте свой веб-сайт в веб-браузере.
Как передать входные параметры в компонент
Поскольку компонент можно использовать повторно, есть атрибуты, которые вы можете изменять каждый раз, когда используете его. В этом случае можно использовать входные параметры.
- Добавлять Вход к списку импорта в верхней части ui-card.component.ts:
импорт {Компонент, ввод, OnInit} из '@угловой/core';
- Затем добавьте две входные переменные внутри UICardComponent учебный класс. Это позволит вам изменить название местоположения и изображение, которое отображается на карте. Заполните нгонинит как показано, чтобы создать путь к изображению или использовать значение по умолчанию:
экспортучебный класс UiCardComponent реализует OnInit {
@Вход() название местоположения: нить;
@Вход() имя_изображения: нить;конструктор() { }
нгонинит(): пустота {
если (это.imageName) {
это.imageName = "./assets/images/" + это.ИмяИзображения;
} еще {
это.imageName = "./assets/images/blue-mountains.jpg";
}
}
} - В ui-card.component.html, измените жестко запрограммированное значение «Голубые горы» в заголовке 4, чтобы вместо него использовалась входная переменная «locationName». Также измените жестко закодированный источник атрибут в теге изображения, чтобы использовать входную переменную "imageName":
<раздел класс ="открытка">
<источник изображения ="{{имя_изображения}}" альт="Аватар">
<раздел класс ="контейнер">
<h4 класс="заглавие">{{название местоположения? название местоположения: 'Голубые горы'}}</h4>
<п>Новый Южный Уэльс, Австралия</п>
</div>
</div> - В app.component.html, измените теги «app-ui-card», чтобы включить входные данные «locationName» и «imageName». Для каждого элемента карты пользовательского интерфейса введите другое значение. Убедитесь, что файлы изображений существуют в папке assets/images вашего приложения Angular.
<стиль div="дисплей: гибкий">
<app-ui-карта [имя_местоположения] ="'Голубые горы'" [имя изображения]="'голубые горы.jpg'"></app-ui-card>
<app-ui-карта [имя_местоположения] ="'Сидней'" [имя изображения]="'Сидней.jpg'"></app-ui-card>
<app-ui-карта [имя_местоположения] ="'Ньюкасл'" [имя изображения]="'Ньюкасл.jpg'"></app-ui-card>
</div> - Запустите приложение Angular из терминала, используя нг служить команду и откройте свой веб-сайт в веб-браузере.
На этом этапе вы можете увидеть ошибку об отсутствии инициализатора у этих свойств. Если да, просто добавьте или установите «СтрогаяИнициализацияПроперти»: ложь в твоей tsconfig.json.
Как выполнить маршрут к новому компоненту
Если ваш компонент представляет большую часть вашего веб-сайта, например новую страницу, вы также можете перейти к этому компоненту.
- Открытым приложение-routing.module.ts. Импортируйте компонент карты пользовательского интерфейса в верхней части файла:
импорт {UiCardComponent} из './ui-card/ui-card.component';
- Добавьте путь маршрутизации в массив маршрутов:
константа маршруты: Маршруты = [
//... Любые другие маршруты, которые могут вам понадобиться...
{путь: 'uicard', компонент: UiCardComponent},
] - Заменить все текущее содержимое в app.component.html включать только панель навигации и HTML-тег router-outlet. Router-outlet позволяет маршрутизировать между страницами. Добавьте гиперссылку на панель навигации с атрибутом href, соответствующим пути в массиве маршрутов:
<раздел класс ="навигационная панель-заголовок">
<класс ="навигационное название"><б> Веб-навигационная панель </ б></ а>
<класс ="навигационная ссылка" ссылка="/uicard"><б> Карта пользовательского интерфейса </ б></ а>
</div>
<роутер-розетка></router-outlet> - Добавьте стиль к новой ссылке карты пользовательского интерфейса, в app.component.css:
.nav-ссылка {
украшение текста: никто;
цвет: #4b6569;
размер шрифта: 14пт;
поле слева: 60пикс.;
вес шрифта: более легкий;
} - Запустите приложение Angular из терминала, используя нг служить команду и откройте свой веб-сайт в веб-браузере. Ссылка появится в панели навигации на веб-странице.
- Обратите внимание на URL-адрес в веб-браузере. По умолчанию обычно http://localhost: 4200/. Когда вы нажимаете на ссылку карты пользовательского интерфейса, страница перенаправляется на http://localhost: 4200/карта, и появится карточка пользовательского интерфейса.
Создание компонентов в Angular
Компонент — это один из основных строительных блоков Angular. Компоненты позволяют разбивать различные разделы вашего веб-сайта на более мелкие, многократно используемые части. В компоненты можно превратить что угодно, в том числе кнопки меньшего размера, карточки, боковые панели большего размера и панели навигации.
Вы также можете использовать входные переменные для передачи данных между разными экземплярами компонента. И вы можете перейти к компоненту, используя URL-адреса.
Если вы разрабатываете новое приложение Angular, вам может понадобиться создать панель навигации, чтобы ваши пользователи могли перемещаться по вашим компонентам. Наличие адаптивной панели навигации позволяет просматривать ее на разных устройствах и экранах разного размера.