浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
简介
Vue.use(plugin):安装Vue.js插件。如果插件是一个对象,必须提供install方法。如果插件是一个函数,它会被作为install方法。install方法将被作为Vue的参数调用。
当install方法被同一个插件多次调用,插件将只会被安装一次。
Vue.js的插件应当有一个公开方法install。这个方法的第一个参数是Vue构造器,第二个参数是一个可选的选项对象:
MyPlugin.install=function(Vue,options){ //1.添加全局方法或属性 Vue.myGlobalMethod=function(){ //逻辑... } //2.添加全局资源 Vue.directive('my-directive',{ bind(el,binding,vnode,oldVnode){ //逻辑... } ... }) //3.注入组件 Vue.mixin({ created:function(){ //逻辑... } ... }) //4.添加实例方法 Vue.prototype.$myMethod=function(methodOptions){ //逻辑... } }
通过全局方法Vue.use()使用插件:
//调用`MyPlugin.install(Vue)` Vue.use(MyPlugin)
也可以传入一个选项对象:
Vue.use(MyPlugin,{someOption:true})
Vue.use会自动阻止多次注册相同插件,届时只会注册一次该插件。
Vue.js官方提供的一些插件(例如vue-router)在检测到Vue是可访问的全局变量时会自动调用Vue.use()。然而在例如CommonJS的模块环境中,你应该始终显式地调用Vue.use():
//用Browserify或webpack提供的CommonJS模块环境时 varVue=require('vue') varVueRouter=require('vue-router') //不要忘了调用此方法 Vue.use(VueRouter)
实例:实现一个children组件
在main.js中使用该组件的方法:
importchildModulefrom'./components/children' Vue.use(childModule)
组件文件夹的目录结构如下:
|-components |-children |-index.js导出组件,并且install |-children.vue(定义自己的组件模板)
children.vue代码如下:
importchildrencomponentfrom'./children.vue' constchildrenMo={ install:function(Vue){ Vue.component('childModule',childrencomponent) } } exportdefaultchildrenMo
这样就实现了一个通过vue.use调用一个全局组件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。