Я начинаю интегрировать NGXS в свой проект Angular, и передо мной стоит небольшая дилемма.
В настоящее время все мои модели являются классами, которые также содержат методы, которые имеют дело с моделью (вспомогательные методы, а также действия).
Мне известно о том, что с NGXS действия должныне находиться в объектах модели и должен перемещаться в файлы действий / состояний.
Однако я не уверен, что делать с другими методами.
С одной стороны, размещая их внутри сервисовкажется искусственным, так как сервисы используются в основном для операций CRUD.Более того, каждый учебник по Angular, который не включает в себя NGXS, пропагандирует использование классов моделей, инкапсулирующих функциональность модели.
С другой стороны, все примеры NGXS, которые я видел до сих пор, используют только интерфейсы в качестве моделей.
Вот пример класса модели:
export class Person {
static readonly ADULT_TIME = 18 * 365 * 24 * 60 * 60 * 1000;
name: string;
dateOfBirth: Date;
constructor(name: string, dateOfBirth: Date) {
this.name = name;
this.dateOfBirth = dateOfBirth;
}
public isAdult(): boolean {
return (Date.now() - this.dateOfBirth.getTime()) >= Person.ADULT_TIME;
}
}
Anинтерфейс такой модели будет выглядеть следующим образом:
export interface Person {
name: string;
dateOfBirth: Date;
}
Существует ли какой-то стандартный подход к тому, что делать с методами, связанными с моделью, при работе с NGXS (например, isAdult()
), или, альтернативно, возможно ли это /желательно работать с модельными классами вместе с NGXS?