Привет и спасибо, что заглянули!
Итак, что такое CommonModule? Вы видели его, знаете, что он поставляет *ngIf, *ngFor и так далее, но что еще у нас есть?
В документации говорится, что он снова реэкспортирован в BrowserModule... но почему?
Чтобы понять, что именно представляет собой CommonModule, мы должны сначала прояснить, что именно является модулем и что он делает для нас.
В Angular мы говорим, что создаем модульные приложения, потому что мы охватываем и группируем вместе различные сущности. С помощью модулей мы объявляем и предоставляем эти самые сущности.
По мере роста нашего приложения требуется все больше функций и все больше разделения. Определение каждой функции в отдельном логическом блоке - это хорошая практика, которой мы все должны следовать.
Чтобы использовать компоненты и директивы из этого модуля, мы должны обеспечить его существование в Angular. Это означает импортировать его в другие модули, которые требуют эти компоненты.
Итак, чтобы подвести итог и объяснить, CommonModule - это модуль Angular, который содержит и экспортирует компоненты Angular, директивы и трубы.
Проверки app.module.ts достаточно, чтобы понять, почему его реэкспорта в BrowserModule достаточно, чтобы получить доступ к компонентам CommonModule в модуле app.
Сегодня я не буду подробно рассматривать модуль BrowserModule, но имейте в виду, что BrowserModule должен быть импортирован только один раз, поскольку он предоставляет услуги, необходимые для запуска и работы браузерного приложения. И вам не нужно это для ваших функциональных модулей.
Когда вы создаете новый модуль с помощью Angular CLI, он автоматически добавляет CommonModule в импорт. Но поскольку мы уже знаем, что он предназначен только для экспорта базовых утилит, вы можете смело удалить его, и все будет работать нормально.
Итак... Удалять ли его, если вы не собираетесь ничего из него использовать? Ну, я всегда оставляю его там, но я оставляю это решение на ваше усмотрение.
CommonModule ведет себя так же, как и любой другой модуль.
Если у вас есть SharedModule, вы можете импортировать и экспортировать ваш CommonModule туда, и импорта SharedModule будет достаточно, чтобы получить доступ ко всем компонентам CommonModule, директивам и трубам.
Это может быть полезно, если вы планируете оптимизировать импорт.
Я считаю, что для хорошего понимания необходимо изучить исходники, а не документацию.
Документация отлично подходит для первого знакомства и начала работы, но чтобы понять технологию, лежащую в основе, вам нужно проверить репозиторий на github.
Давайте сначала проверим директиву. Если мы перейдем к пакету common в официальном репозитории Angular, то увидим индексный файл, который экспортирует все директивы Angular.
Сделаем то же самое для труб
CommonModule - это важный модуль в Angular, который предоставляет нам мощные инструменты, позволяющие сэкономить время и усилия при реализации общей функциональности и улучшить согласованность и сопровождаемость кода.
Вы можете еще больше расширить и увеличить полезность модуля CommonModule, добавив в него дополнительные функции. Поскольку это всего лишь модуль, вы импортируете и реэкспортируете его снова с расширенной функциональностью.
Команда Angular предоставляет нам директивы и трубы, которые очень важны для создания масштабируемых и поддерживаемых приложений.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.