原创

vue的注册路由

看了也写了不少VUE的代码,现在来分享一下相关代码

框架核心代码

Vue 提供了 Vue.use 的全局 API 来注册这些插件,所以我们先来分析一下它的实现原理,定义在 vue/src/core/global-api/use.js

export function initUse (Vue: GlobalAPI) {
  Vue.use = function (plugin: Function | Object) {
    const installedPlugins = (this._installedPlugins || (this._installedPlugins = []))
    if (installedPlugins.indexOf(plugin) > -1) {
      return this
    }

    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
  }
}

思路拆解


先下班了,未完待续……

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TypeScript + Vue 项目的 Eslint中解构配置

    该文讲解Eslint 配置项 prefer-destructuring在TypeScritp + Vue 项目中使用和配置

    Mr.Teen
  • Typescript中类型错误解决方案

    Mr.Teen
  • PTA平台nodejs的输入输出控制

    Mr.Teen
  • React.createClass vs extends React.Component

    接下来, 就对比一下这两种写法的不同之处. 例子的顺序都是先写React.createClass, 再写extends React.Component

    IMWeb前端团队
  • React.createClass vs extends React.Component

    当我们学习ReactJS的时候, 都会通过官方Tutorial看到下面的写法. import React from 'react'; let TodoItem...

    IMWeb前端团队
  • Python--strip()学习记录

    明天依旧可好
  • 【前端】Javascript高级篇-ES6中类和对象的三个注意

    如果想在调用实例对象,但this指向不是实例,可以先保存var that = this

    瑞新
  • 庆祝启明星俱乐部欢迎仪式隆重举行!

    ?     2020年8月22日,由腾讯课堂主办的“启明星俱乐部”欢迎仪式成功举办。会上介绍了启明星俱乐部的创办理念,就“产业互联网时代,产品运营人才的机遇和...

    腾讯NEXT学位
  • hbase源码系列(十二)Get、Scan在服务端是如何处理?

    继上一篇讲了Put和Delete之后,这一篇我们讲Get和Scan, 因为我发现这两个操作几乎是一样的过程,就像之前的Put和Delete一样,上一篇我本来只打...

    岑玉海
  • 连胜终结,pyecharts展示iG致命短板

    2019MSI季中赛小组赛已经结束了。Top4分别是iG、SKT、G2、TL,iG以9胜1负小组第一的战绩出线

    Python攻城狮

扫码关注云+社区

领取腾讯云代金券