20190911——Vue.use与Vue.prototype

其实不管使用哪一种方式,最终都是调用方式都是

vue.api()

Vue.use()到底做了些什么,可以使我们安装一个自定义的Vue的插件,为此,我们要声明一个install函数,

var install = function(Vue) {
  if (install.installed) return // 如果已经注册过了,就跳过
  install.installed = true

  Object.defineProperties(Vue.prototype, {
    $say: {
      value: function() {console.log('I am a plugin')}
    }
  })
}
module.exports = install

上面的say是一个简单的插件,然后我们需要注册该插件

import say from './say.js'
import Vue from 'vue'

Vue.use(say)
Vue.use = function (plugin) {
  if (plugin.installed) {
    return;
  }
  // additional parameters
  var args = toArray(arguments, 1);
  args.unshift(this);
  if (typeof plugin.install === 'function') {
    plugin.install.apply(plugin, args);
  } else {
    plugin.apply(null, args);
  }
  plugin.installed = true;
  return this;
};

关于JS原型对象prototype
对象我们简单的分成两类,一个是函数对象,一个是普通对象,普通对象是通过函数创建的。
每一个函数对象具有一个prototype属性,而普通对象是没有的。

普通对象的__proto__指向当前函数对象的原型

js通过原型链可以实现继承那么我们可以对Vue.prototype进行操作,对Vue.prototype添加属性或者方法,所有通过new Vue创建的实例都可以继承这些属性或方法,例如我们在main.js 中添加如下代码:

//无关代码省略
Vue.prototype.myName="mmz"
//无关代码省略
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值