Смогут ли Angular Signals заменить NgRx (немного)?

Я много читал о Signals, которые будут выпущены вместе с Angular 16, и уже немного писал для них код. Довольно круто!

Я слышал (и верю), что он, вероятно, заменит почти весь код RxJ, ожидая асинхронных вещей, таких как получение API.

Мой вопрос: разве это не хороший способ управлять состоянием без сторонних инструментов, таких как NgRx? Что ты думаешь?

Я сам работал в обеих упомянутых технологиях

4 ответа

Это не одно и то же:

  • NgRx — библиотека управления состоянием.
  • Сигналы предназначены для детальной реактивности.

Однако NgRx будет использовать сигналы. На эту тему существует текущий RFC .

Ниже приводится выдержка из официального документа :

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

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

По моему мнению, у Signals есть полный потенциал заменить NgRx в большинстве будущих проектов Angular.

Сигналы никогда не заменят Ngrx, это дополнение.

Для очень простых проектов вы можете обойтись без Ngrx и просто использовать Signals. Но если вы делаете что-то большее, чем небольшой проект, вам следует использовать правильное управление состоянием.

Ngrx может предоставлять селекторы как сигналы, так что вы получите лучшее из обоих миров. Это действительно потрясающе. Теперь у нас есть производственное приложение, созданное с помощью Angular 16.1, это большое автономное приложение, использующее Ngrx/Store и Signals. Это действительно меняет правила игры, и просто удивительно, на что способны Signals и inject().

Я думаю, что он, скорее всего, заменит RxJ (не NgRx), но я не совсем понимаю, какое решение для магазина поставляется с Signals.

Другие вопросы по тегам