DevGang
Авторизоваться

Akita

Строгий менеджер состояний для приложений на javascript

Структура приложения

Акита не ограничивает вашу структуру кода. Вместо этого он применяет набор принципов высокого уровня:

  1. Хранилище - это отдельный объект, который содержит состояние хранилища и служит «единственным источником истины».
  2. Единственный способ изменить состояние - вызвать setState() (или один из методов обновления на его основе).
  3. Компонент НЕ должен получать данные из хранилища напрямую, а вместо этого должен использовать запрос.
  4. Асинхронная логика и вызовы обновления должны быть заключены в службы и службы данных.

Пока вы следуете этим правилам, вам решать, как структурировать ваш проект. Вот как Акита рекомендует структурировать проект ради поддержания модульности и порядка.

── todos
    └── state
       ├── todos.query.ts
       ├── todos.store.ts
       ├── todos.service.ts
    └── todos.module.ts
    └── todos-page.component.ts
    └── todo
        └── todo.component.ts
        └── todo.component.html
        └── todo.component.scss
        └── todo.component.spec.ts        

Для получения дополнительной информации, посмотрите документацию по CLI.

Серви ленивой загрузки в Angular

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

@Injectable({ provideIn: 'root' })
@StoreConfig({ name: 'products' })
export class ProductsStore extends EntityStore<State, Product> {
  constructor() {
    super();
  }
}
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться