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

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

阅读 2.9k
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 思否「问答」打卡,欢迎正在阅读的你也加入。
新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题