当前位置: 首页 > Web前端 > vue.js

Vue.use

时间:2023-03-31 20:12:49 vue.js

用法我们在项目中经常会用到Vue.use,比如Vue.use(ElementUI)、Vue.use(vueRouter),下面就来看看Vue的使用方法吧。Vue.use接收一个函数或一个对象。如果插件已经注册过,则不会再次注册。1.如果传入对象,对象中包含install方法,那么让install这个函数直接执行,在install中把这个对象当作this让install执行,然后把vue和其他定义好的参数作为参数传给install函数让a={install(Vue,a,b){console.log(Vue,a,b,this);}}Vue.use(a,1,2)2.如果传入一个函数,让函数直接执行,让null为函数的this(即用window作为函数的this),然后将Vue和其他定义的参数作为参数传递给安装函数functiona(Vue,a,b){console.log(Vue,a,b,this);}Vue.use(a,1,2)Vue.usesourcecodeimport{toArray}from'../util/index'exportfunctioninitUse(Vue:GlobalAPI){//接受函数或对象Vue.use=function(plugin:Function|Object){constinstalledPlugins=(this._installedPlugins||(this._installedPlugins=[]))//installedPlugins缓存机制,如果存在则直接返回if(installedPlugins.indexOf(plugin)>-1){returnthis}//自定义将传入的参数进行转换intoanarrayconstargs=toArray(arguments,1)//以Vue为第一个参数,比如install(Vue),可以直接获取Vueargs.unshift(this)//如果是对象,则为有安装功能if(typeofplugin.install==='function'){//直接执行,将this对象作为函数的this,并将参数传递给plugin.install.apply(plugin,args)//如果传入isaFunctionwords}elseif(typeofplugin==='function'){//直接执行,把null作为function的this,传参给plugin.apply(null,args)}installedPlugins.push(插件)返回这个}}