Я создаю SPA в Angular 7 и хочу следовать передовым методам, но я не до конца понимаю, почему везде рекомендуется хранить данные в сервисах, а не в файле с константой, которую можно напрямую импортировать.
Прямой импорт константы кажется намного проще.Я что-то упустил?
Мой код:
userSession.ts
export const userSession = {
loggedIn: null,
userId: null
};
что-то.service.ts :
import { userSession } from '../appGlobals/user-session';
// decorators, ect .......
export class SomethingService {
constructor() { }
doSomething() {
if (userSession.loggedIn) {
// do something
}
}
}
Предлагаемый код (на мое понимание):
user.service.ts
//imports and decorator ....
export class UserService {
session = {
loggedIn: boolean;
userId: number;
}
//...
}
some.service.ts
import { UserSession } from '../services/user.service.ts';
// decorators, ect .......
export class SomeService {
constructor(private userService: UserService) { }
doSomething() {
if (this.userService.session.loggedIn) {
// do something
}
}
}
В больших классах, использующих поля пользовательских сессий, код выглядит намного чище, если просто использовать объект «userSession» вместо «this.userService.session» ивнедрить зависимость в конструктор.Каковы же преимущества / недостатки каждой установки?