vue的install方法的第一个参数是 Vue 构造Vue构造器是从哪里来的

小胡同学114
  • 35

最近在看插件源码 发现都在使用install的方法。并且install方法内部使用的vue就是他的第一个参数,找半天实在不知道这个vue是哪里传进来的。求大神解答,这个是vue-router的源码里面的install方法截图。
image.png

回复
阅读 187
3 个回答
✓ 已被采纳

要解答这个问题,首先你要明白Vue插件是如何使用的,如你所见,

 Vue.use(router);

来看下use方法的源码:

Vue.use = function (plugin) {
    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
    if (installedPlugins.indexOf(plugin) > -1) {
      return this
    }

    // additional parameters
    var 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
  };

根据args.unshift(this);,根据这句代码,可以知道把this也就是当前vue实例this对象存储在参数当中,所以在调用install的时候,第一个参数就可以拿到当前vue实例。

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。
enobj
  • 1
新手上路,请多包涵

debug
可以在浏览器里debug一下,找到来源很简单的

你知道吗?

宣传栏