Как держать контекст в Angular? - PullRequest
       0

Как держать контекст в Angular?

0 голосов
/ 23 сентября 2019

Я работаю над некоторыми улучшениями нашего кода с точки зрения читабельности и производительности.

Мы используем компонент контейнера, который загружает все необходимые данные и передает их дочерним компонентам в качестве входных данных.В целом, это хорошая практика, но у меня есть некоторые проблемы в нашем конкретном случае: этот контейнерный компонент содержит все приложение, за исключением заголовка.Он содержит несколько дочерних компонентов, которые являются подконтейнерами, а также имеют несколько собственных дочерних компонентов.Это означает, что мы должны пропустить весь контекст через каждый компонент контейнера, пока он, наконец, не достигнет «настоящих» компонентов, и это огромная куча входов, которые нужно добавить в каждый родительский контейнер - мой любимый контейнер имеет 18 входов, которые он никогда не использует, иотправлять только своим дочерним элементам.

Я думаю, что это трудно читать, и вместо этого я мог бы использовать службу, к которой обращался бы верхний компонент для установки данных контекста, а затем соответствующие компоненты длячитать данные по необходимости.Я также обеспокоен выступлениями, использующими так много входов с некоторыми довольно большими объектами.

Я не смог найти какой-либо хорошей практики для определения наилучшего способа удержания контекста в Angular, особенно когда в нем многоданных.Я не знаю, есть ли другой способ, кроме использования сервисов или входов.

У меня есть два вопроса:

  • Каков наилучший способ хранения данных контекста в приложении Angular?
  • Может ли злоупотребление входами во многих компонентах быть проблемой с точки зрения производительности?

1 Ответ

1 голос
/ 23 сентября 2019
  • Каков наилучший способ хранения данных контекста в приложении Angular?

Использование синглтона, указанного вами.

Вы также можете использовать библиотеку управления состоянием, такую ​​как AkitaJS, NgRx, NgXs ... (на ваше усмотрение).Их преимущество заключается в возможности сохранять данные в локальном хранилище.

  • Может ли злоупотребление входами во многих компонентах быть проблемой с точки зрения производительности?

Да.Особенно, если вы полагаетесь на обнаружение изменений по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...