Vue.use() 与 install()

1.Vue.use()

vue.use()往全局注入一个插件,供全局真接使用, 不需要单独引用
官网给出的解释是: 通过全局方法 Vue.use() 使用插件;我觉得把使用理解成注册更合适一些
基本使用

import Router from 'vue-router'
Vue.use(Router)
 
import Vuex from 'vuex'
Vue.use(Vuex)

但是为什么Vue.use()就可以注入插件呢?请看下文

2.install()

####2.1Vue.user()源码解读:

Vue.use = function (plugin: Function | Object) {
const installedPlugins = (this._installedPlugins || (this._installedPlugins = []))
if (installedPlugins.indexOf(plugin) > -1) {
return this
}
// additional parameters
const args = toArray(arguments, 1)
args.unshift(this)
if (typeof plugin.install === ‘function’) {
plugin.install.apply(plugin, args)
} else if (typeof plugin === ‘function’) {
plugin.apply(null, args)
}
installedPlugins.push(plugin)
return this
}

vue.use()为注册全局插件所用,接收函数或者一个包含install属性的对象为参数,如果参数带有install就执行install, 如果没有就直接将参数当install执行, 第一个参数始终为vue对象, 注册过的插件不会重新注册

####2.2Vue.user()使用:

import {
    initUtil
} from './util.js'
import {
    initError
} from './error.js'
import {
    initRequest
} from './request.js'
import {
    initPermission
} from './permission.js'
import {
    initInterceptor
} from './interceptor.js'
export default {
    install(Vue) {
        initUtil(Vue)
        initError(Vue)
        initRequest(Vue)
        initPermission(Vue)
        initInterceptor()
    }
}

####main.js中的使用

import plugin from './js_sdk/uni-admin/plugin'
Vue.use(plugin)

Vue.use() 的注册本质上就是执行了一个 install 方法,install 里的内容由开发者自己定义,通俗讲就是一个钩子可能更贴近语义化而已。
只要在在抛出的js文件里规定了install方法,就可以向其他ui组件库那样,使用Vue.use()来全局使用
在 install 里我们可以拿到 Vue 那么和 Vue 相关的周边工作都可以考虑放在 Vue.use() 方法里,比如:

directive注册
mixin注册
filters注册
components注册
prototype挂载

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值