Vue.js 外部JS文件中的Vue原型和对vuex$存储的访问

Vue.js 外部JS文件中的Vue原型和对vuex$存储的访问,vue.js,module,prototype,vuex,Vue.js,Module,Prototype,Vuex,我已经设置了一个vue原型 Vue.prototype.$preventAccess = function (role ) { if(role === this.$store.state.role) { // do some stuff } } 这是我的主要入口点,但是当我尝试在外部模块prevent.js中使用它时 import store from '@store/store'; import Vue from 'vue'; export default function log(

我已经设置了一个vue原型

Vue.prototype.$preventAccess = function (role ) {

if(role === this.$store.state.role) {
// do some stuff

}

}
这是我的主要入口点,但是当我尝试在外部模块prevent.js中使用它时

import store from '@store/store';
import Vue from 'vue';

export default function log({ next, to }) {
  console.log(Vue.prototype.$preventAccess('Editor'));
}
我得到了错误

Cannot read property 'state' of undefined

我不能在这样的外部JS文件中使用我的原型吗?如何将存储注入外部模块?

请遵循此处的文档:

当使用prototype时,当您基于该类创建对象时,您可以访问该类

在访问Vue.prototype.$preventAccess时,没有此选项,因为没有Vue实例,所以不会创建此选项

如果实例化Vue并在该实例上调用$preventAccess,则调用将有效

var app = new Vue({
   el: "#app",
})
app.$preventAccess()

现在,$preventAccess已经定义了一个这样的插件。

如果没有原型,应该可以工作:Vue。$preventAccess=function在应用程序的其他地方会破坏它。也许你必须创建一个插件来完成你想做的事情:
var app = new Vue({
   el: "#app",
})
app.$preventAccess()