Estoy tratando de hacer una aplicación bastante grande y escalable y me dijeron que es una buena práctica tener una sola tienda que almacene el estado global actual (incluidos los datos transitorios/eliminados al recargar y los datos persistentes de la sesión) de toda la aplicación, incluso si está separado en varios módulos.
Ahora me preguntaba por qué la aplicación de ejemplo de ngrx/store que puede encontrar en el sitio web de ngrx/store usa varias tiendas; cada reductor tiene un código propio como este:
export interface State { ids: string[]; entities: { [id: string]: Book }; selectedBookId: string | null; }; export const initialState: State = { ids: [], entities: {}, selectedBookId: null, };Entonces, ¿por qué la guía oficial no usa una sola tienda como recomienda la mayoría de la gente? ¿O se considera como un único almacén siempre que todos los reductores pertenezcan a un mismo módulo? Si no, ¿cómo implemento una sola tienda central? Mi idea sería usar un genérico de Store y poner sus variaciones en una tabla. La otra opción sería tener un solo objeto JS cuyas propiedades actualice con acciones reductoras. De cualquier manera, debe tener alguna estructura en la tabla u Objeto. ¿Hay mejores prácticas para esto? ¿Conoces una mejor aplicación de ejemplo?
La aplicación de ejemplo utiliza una sola tienda. El estado en este caso es la interfaz para un reductor. Puede tener muchos reductores en una tienda.
Se considera una buena práctica usar una sola tienda. Una sola tienda debería ser suficiente para casi todas las aplicaciones pequeñas y medianas.
Hay un muy buen ejemplo de la aplicación Angular Tour of Heroes recreada con NGRX Store. Puede encontrarlo aquí: http://bodiddlie.github.io/ng-2-toh-with-ngrx-suite/