Строгий менеджер состояний для приложений на javascript
Акита также поддерживает использование класса в качестве базового значения вместо простого объекта. В большинстве случаев мы не рекомендуем делать это по следующим причинам:
Однако иногда они могут быть полезны. Вот пример, который использует класс:
export class User {
constructor({firstName, lastName, token}: Partial<User>) {
this.firstName = firstName;
this.lastName = lastName;
this.token = token;
}
get name() {
return `${this.firstName} ${this.lastName}`;
}
}
export interface State extends EntityState<User> {}
@StoreConfig({ name: 'user' })
export class UserStore extends EntityStore<State, User> {
constructor() {
super();
}
}
В этом случае, когда вы вызываете update()
, add()
или set()
, Akita
позаботится о создании нового пользователя путем слияния текущего состояния
объекта с новыми параметрами.