如何在vue.js项目的main.js文件中导入js类并在所有组件中使用它,而不是在每个组件中导入?

时间:2019-04-20 15:03:47

标签: javascript vue.js

我已经编写了一些JS类,希望将它们导入vue.js项目的app.js / main.js文件中,以便可以在组件中实例化它们。现在,我必须在需要单个类的所有组件中导入相同的JS类。

我在main.js文件中尝试了导入,但是组件无法识别它。

在main.js文件中,我按如下方式导入

import Permissions from './Permissions'

但是,当我想在我的组件中实例化Permissions类时

data() { permissions: new Permission({ some object properties... }) }

该组件不知道Permissions是什么。

如何让组件知道Permissions类是什么?

1 个答案:

答案 0 :(得分:0)

要以vue方式进行操作,可以创建自己的插件或mixin。查看详细说明here

因此,您可以在Permissions-plugin.js中创建一个权限插件

import Permissions from './Permissions'

const PermissionsPlugin = {
  install(Vue, options) {
    // This adds the $getPermissions method to all instances
    Vue.prototype.$getPermissions = function(properties) {
      return new Permission({
        some object properties...
      })   
    }
  }
};

然后,您必须告诉vue使用您的插件:

import Vue from 'vue'
import PermissionsPlugin from './permissions-plugin.js'
import App from './App.vue'

// The plugin is loaded here.
Vue.use(PermissionsPlugin)

new Vue({
  el: '#app',
  render: h => h(App)
});

最后,从任何组件开始,您都应该可以使用以下功能:

this.$getPermissions(properties)