web-dev-qa-db-fra.com

Que fait exactement le hook "useLocalStore" de mobx-react-lite, et pourquoi est-il (seulement parfois) nécessaire?

Dans la documentation mobx-react , il existe des variantes dans la façon dont les magasins sont créés. Par exemple, sur la page React Context :

Dans le premier exemple de code, le magasin est instancié avec useLocalStore:

  const store = useLocalStore(createStore)

Dans le deuxième exemple de code, les magasins sont lancés en "ajoutant" directement les magasins ":

  counterStore: new CounterStore(),
  themeStore: new ThemeStore(),

Par déduction, le premier est un magasin "local" (et nécessite donc useLocalStore), et le second est un magasin "global" et donc ne le fait pas . Cependant, on ne sait pas pourquoi et quelle est la différence de comportement qui en résulte .

Pourquoi useLocalStore n'est-il pas nécessaire dans le deuxième exemple, et quelle différence cela fait-il sur le comportement des stores et de mobx dans React?

Merci pour toute contribution

4
arhnee

OK, j'ai trouvé la réponse. useLocalStore transforme un littéral javascript en un magasin avec des propriétés observables. Cela n'est pas nécessaire si un magasin est créé à partir d'un objet de classe avec des attributs observables.

Merci à @freddyc pour la réponse

2
arhnee