Vue.use()与Vue.prototype的区别

1.Vue.prototype直接挂在 Vue 方法的原型上,通过原型链继承的关系可以在任意一个组件里访问到实例

function myVue(title){
  this.title = title
}
myVue.prototype.myUse = '在原型上添加公共属性'
const A = new myVue('我是实例A')
const B = new myVue('我是实例B')
console.log(A.title, B.title, A.myVue, B.myVue, )
// 我是实例A 我是实例B 在原型上添加公共属性 在原型上添加公共属性

如在nuxt.js服务端渲染的vue项目中,引入的插件如果有window,在服务端就不能访问会出现报错,通过Vue.prototype的方法注册,就可以避免报错。

以下情况就要使用Vue.prototype了

  (1)不是为了vue写的插件(插件内要处理)不支持Vue.use()加载方式
  (2)非vue官方库不支持new Vue()方式

import { jsencrypt } from 'jsencrypt';
Vue.prototype.$jsencrypt = jsencrypt;

2.Vue.use的注册本质上就是执行install方法,每一个vue组件都是Vue的实例,所以组件内this可以拿到Vue.prototype上添加的属性和方法,如果使用Vue.use插件内必须要有install方法

// A.js
let Ainstall = {};
const install = (Vue,options) => {
    ....
}
Ainstall.install = install;
export default Ainstall;



// main.js
import Aplugin from "A.js"
Vue.use(Aplugin);

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值