Existe-t-il une méthode recommandée pour propager les données via les composants vue ? Ce que je veux faire, c'est récupérer les données du backend once
et les propager à différents endroits de mon projet, mais je ne trouve pas la bonne stratégie.
sessionStorage : fonctionne très bien et se réinitialise lors de l'actualisation/fermeture de la fenêtre, mais il ne propagera pas vos données vers le nouvel onglet une fois que vous devrez créer la balise d'ancrage target="_blank"
. p>
localStorage : Mieux que sessionStorage
需要更多的工作,因为您需要手动删除数据以保持整洁。对我来说一个大问题是,看起来你无法正确传递 markdown
和 arrays
,至少没有 stringify
。我已经使用 localStorage
构建了一个项目,并最终从我的大多数组件发送 ajax 请求
,因为我无法按照我想要的方式通过我的应用程序传播数据。此时我的frontend
是backend
à mon avis.
Mon opinion personnelle sur localStorage
的问题:我使用marked
包来显示Markdown
,但如果传递undefined
,它会抛出错误。当我想在 reactive 状态
中使用它时,这会出现问题,因为它不会导致 undefined
,而是引发错误并使整个应用程序崩溃。我想说的是,当您将 undefined localStorage 值
传递给 marked
中的 either 或 field
est la suivante :
const state = reactive({ value: marked(localStorage.value) || "" })
Si localStorage.value
est vide, votre application fera planter.
Un autre problème est que je base le contenu sur locale
获取文本内容并将其存储在 localStorage
中。这很好,直到用户更改 locale
et que toutes les chaînes de contenu doivent être remplacées par des chaînes traduites. Cela devient vraiment délicat si je souhaite utiliser un composant comme modèle pour charger différents paramètres régionaux.
vuex : J'ai rapidement essayé vuex
并发现它很有用,但没有看到比仅使用 localStorage
d'obtenir les bénéfices pour mes objectifs. Peut-être que je vais réessayer.
Comment diffuser des données via l'application ?
Il existe de bons arguments pour expliquer pourquoi Vuex est meilleur que le stockage local :
https://www.quora.com/What-is-the-benefit-of-using-Vuex-over-LocalStorage-to-store-the-state-of -Applications dans Vue-js
Vous pouvez également essayer des objets composables. Ce sont des fonctions réutilisables (similaires aux mixins) dans composition-api (dans vue2 le plugin composition-api est requis, dans vue3 il est intégré). Cela peut également être l'endroit où vous stockez vos données. C'est plus simple et plus intuitif que Vuex.