Vue:在没有导入语句的情况下在组件外部使用 Vuex 存储
Vue: Use Vuex store outside of component without Import Statements
在 Vue 2/3 和 ES6 环境中,当我想访问外部 JS 文件(在组件之外)中的 Vuex 存储时,我通常会使用这样的东西:
// example.js
import { store } from '../store/index';
console.log(store.state.currentUser);
这很好用,但是,在我当前的环境中 (Rails 5 没有 webpack),我们根本无法使用 import
语句。
问题:在常规 ES5 JavaScript 中,有什么方法可以访问组件外部的 Vuex 存储吗?
值得注意的是,我已经在前端成功设置了 Vuex,只是我们无法在定义的 Vue 组件之外访问它。
在我的 Rails 设置中,我有这个:
// app/assets/javascripts/lib/vuex/store.js
const store = new Vuex.Store({
modules: {
activity: activityStore,
}
});
// application.js
//= require vue/dist/vue.min
//= require vuex/dist/vuex.min.js
$(document).ready(function () {
Vue.use(Vuex);
});
在此实例中,store
只是一个全局 javascript 对象。像使用任何其他 JS 对象一样使用它。
只要你在正确编译的 JS 文件中,并且你的基础 Vue 安装正确,你就可以 store.state.activity.activities
,或者如果你有突变,store.commit('myMutation', 'Hello test')
。
我的具体示例是调用 webhook 的巨大函数。 Webhook 可能需要一段时间,我想在收到新消息时向用户发送消息。
示例:
// webhook.js
async webhookFunction() {
// new message recieved
store.commit('newActivity', 'Your object has been updated');
}
在 Vue 2/3 和 ES6 环境中,当我想访问外部 JS 文件(在组件之外)中的 Vuex 存储时,我通常会使用这样的东西:
// example.js
import { store } from '../store/index';
console.log(store.state.currentUser);
这很好用,但是,在我当前的环境中 (Rails 5 没有 webpack),我们根本无法使用 import
语句。
问题:在常规 ES5 JavaScript 中,有什么方法可以访问组件外部的 Vuex 存储吗?
值得注意的是,我已经在前端成功设置了 Vuex,只是我们无法在定义的 Vue 组件之外访问它。
在我的 Rails 设置中,我有这个:
// app/assets/javascripts/lib/vuex/store.js
const store = new Vuex.Store({
modules: {
activity: activityStore,
}
});
// application.js
//= require vue/dist/vue.min
//= require vuex/dist/vuex.min.js
$(document).ready(function () {
Vue.use(Vuex);
});
在此实例中,store
只是一个全局 javascript 对象。像使用任何其他 JS 对象一样使用它。
只要你在正确编译的 JS 文件中,并且你的基础 Vue 安装正确,你就可以 store.state.activity.activities
,或者如果你有突变,store.commit('myMutation', 'Hello test')
。
我的具体示例是调用 webhook 的巨大函数。 Webhook 可能需要一段时间,我想在收到新消息时向用户发送消息。
示例:
// webhook.js
async webhookFunction() {
// new message recieved
store.commit('newActivity', 'Your object has been updated');
}