Estoy creando un complemento para storyblok con vue. Decidí que sería más fácil agregar administración de estado al complemento en lugar de una cámara de eco de $emit() hasta el final del árbol de componentes. Instalé Vuex en mi complemento y fui a agregarlo al archivo main.js como se indica en un tutorial de Vuex; sin embargo, mi archivo main.js no está configurado como el archivo main.js de una aplicación Vue normal.
El tutorial nos dice que hagamos esto.
import Vue from 'vue' import App from './App.vue' import store from './store' //our Vuex store Vue.config.productionTip = false new Vue({ store, //passing in our store render: h =>(App) }).$mount('#app') Sin embargo, mi archivo main.js debido a que es un complemento de storyblok se ve así
import Plugin from './Plugin.vue' import store from './store' //I have no clue where to put this in the code below :( if (process.env.NODE_ENV == 'development') { window.Fieldtype = Plugin let customComp = window.Storyblok.vue.extend(window.Fieldtype); window.Storyblok.vue.component('custom-plugin', customComp); window.StoryblokPluginRegistered = true; } else { let init = Plugin.methods.initWith() window.storyblok.field_types[init.plugin] = Plugin }Como puede ver, la configuración es totalmente diferente, ya que está orientada a inyectar un componente Vue en storyblok como un complemento en lugar de configurar una nueva aplicación Vue. ¿Alguien sabe qué debo hacer aquí?
Resuelvo ese problema agregando en main.js esta línea: window.Storyblok.vue.$store = store;
Luego, en su complemento, cuando llame a la tienda, use lo mismo. Por ejemplo: window.Storyblok.vue.$store.commit()