Accéder aux instances Vue dans Vuex : un guide étape par étape
P粉878510551
P粉878510551 2023-10-22 16:38:22
0
2
545

J'ai déclaré une variable globale dansmain.jsde mon projet Vue.js.

Vue.prototype.$API = "myapihere"

Je veux l'utiliser partout. Cela fonctionne bien avecthis.$API.

Mais dans Vuex, cela ne fonctionne pas.

console.log(this.$API);

Icithis.$APIestundéfini.

Comment utiliser mon$APIdans Vuex.

P粉878510551
P粉878510551

répondre à tous (2)
P粉194919082

J'utilise Vue 3 etVue.prototype.$foo似乎已在此版本中删除。我还发现在我的 VueX 版本中没有this._vm.

J'ai exploré la méthodeProvide / Inject, qui est fournie par la documentation de Vue 3. Cela fonctionne très bien pour accéder aux variables globales depuis mon composant, mais je ne peux pas y accéder depuis le magasin.

La solution que je recherche est d'utiliser les propriétés d'objet et standard sur lesglobalPropertiesstorede Vue et de les définir avant d'installer l'application.

main.js

import store from './store/index'; import App from './App.vue'; // Load custom globals import conf from '@/inc/myapp.config'; const app = createApp(App) .use(store); // Register globals in app and store app.config.globalProperties.$conf = conf; store.$conf = conf; app.mount('#app');

Ce que j'aime, c'est que je peux accéder aux variables globales de la même manière dans le stockage et les composants.

En composante :

export default { data() { return { }; }, created() { console.log( this.$conf.API_URL ); }, }

...vous pouvez accéder àthis.$conf.API_URLde la même manière via des opérations, des mutations et des getters.

Une fois que j'ai trouvé cette solution, je n'ai plus besoin d'accéder à l'intégralité de l'instance Vue depuis le magasin, mais si vous en avez besoin pour une raison quelconque, vous pouvez attribuerstore.$app = app; enstore.$app = app;在main.js.

    P粉054616867

    Réponses Vue 2 et Vuex 3

    L'instance vue est accessible dans le magasin en accédant àthis._vm

    const store = new Vuex.Store({ mutations: { test(state) { console.log(this._vm); } } });
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!