Как лучше всего манипулировать состоянием модуля javascript - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь понять, насколько лучше и как можно более функционально манипулировать состоянием модуля вне этого модуля.

Мой текущий (упрощенный) код:

// cache.js
const cache = {};

const addToCache = (key, item) => {
  cache[key] = item;
}

export default addToCache;

Есть ли более функциональный способ создания некоторой структуры данных, которой необходимо манипулировать в различных частях кодовой базы?

1 Ответ

0 голосов
/ 18 апреля 2020

Что ж, лучшее решение - это класс синглтона: https://en.wikipedia.org/wiki/Singleton_pattern

Одно из лучших решений, которое я могу вам порекомендовать, следующее:

class UserStore {
  constructor(){
   if(! UserStore.instance){
     this._data = [];
     UserStore.instance = this;
   }

   return UserStore.instance;
  }

 add(item){
   this._data.push(item);
  }

 get(id){
   return this._data.find(d => d.id === id);
 }
}

const instance = new UserStore();
Object.freeze(instance);

На самом деле это не мое решение, я нашел его, когда попытался создать собственное решение, но решение, представленное выше, является лучшим. Вы можете узнать больше по следующей статье: https://www.sitepoint.com/javascript-design-patterns-singleton/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...