如何在vue.js项目的main.js文件中导入js类并在所有组件中使用它而不是在每个组件中导入?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在vue.js项目的main.js文件中导入js类并在所有组件中使用它而不是在每个组件中导入?相关的知识,希望对你有一定的参考价值。
我已经编写了一些我想在我的vue.js项目的app.js / main.js文件中导入的JS类,以便我可以在组件中实例化它们。现在我必须在我需要单独的类的所有组件中导入相同的JS类。
我已尝试在main.js文件中导入,但组件无法识别它。
在main.js文件中,我导入如下
import Permissions from './Permissions'
但是,当我想在我的组件中实例化Permissions类时
data() {
permissions: new Permission({
some object properties...
})
}
该组件不知道Permissions
是什么。
如何让组件知道Permissions
类是什么?
要以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)
以上是关于如何在vue.js项目的main.js文件中导入js类并在所有组件中使用它而不是在每个组件中导入?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 vue.js 中导入 ipcRenderer? __dirname 未定义
如何使用 laravel 5.7 和 vue JS 在 mysql 中导入 excel 文件
如何使用 axios 在 Vue Js 中导入 json 数据
尝试在 Django 应用程序的 js 文件中导入 vue.js 时出现“未捕获的语法错误:无法在模块外使用 import 语句”