В чем разница между StoreModule.forRoot() и StoreModule.forFeature()
Недавно магазин ngrx изменил способ регистрации переменных хранилища в приложении angular.
В чем разница между StoreModule.forRoot() и StoreModule.forFeature()
Нужно ли регистрировать обе работы приложения?
Ответы
Ответ 1
Его используют с ленивыми нагруженными редукторами. Если у вас есть (лениво загруженные) функциональные модули и вы хотите зарегистрировать редукторы в этом модуле, тогда вы используете forFeature
. В противном случае в вашем AppModule
вы используете forRoot
.
ссылка: https://github.com/ngrx/platform/blob/master/docs/store/api.md#injecting-reducers
Ответ 2
Всегда импортировать вызовы forRoot(). Я думаю, что это, вероятно, довольно очевидно, но только для записи, вам нужно убедиться, что вы уже импортировали модуль корневого хранилища и эффектов в свое основное приложение.
imports: [
StoreModule.forRoot({}),
EffectsModule.forRoot([]),
...
Если у вас есть редукторы или эффекты, которые применяются на этом уровне, вы должны добавить их здесь, но даже если у вас нет никаких редукторов или эффектов на корневом уровне вашего приложения, вам необходимо выполнить эти два вызова. В противном случае вызовы forFeature() не смогут получить доступ к корневому хранилищу или местоположению эффекта, чтобы добавить редукторы и эффекты для функции.
Ответ 3
Что такое редукторы? Я не использую ngrx, насколько я знаю.