Vue源码分析–Vue.component

我将非 Vue.component 的部分去掉了

export function initAssetRegisters (Vue: GlobalAPI) {Vue.component = function (id: string,definition: Function | Object): Function | Object | void {if (!definition) {// 如果 definition 不存在,取 Vue.options.components[id]return this.options.components[id]} else {// 检查组件名是否合理validateComponentName(id)if (isPlainObject(definition)) {definition.name = definition.name || id// this.options._base.extend 等于 Vue.extend 方法// 所以Vue.component也能防止重复绑定definition = this.options._base.extend(definition)}// 将绑定的组件写到Vue.options.components上this.options.components[id] = definitionreturn definition}}
}

简单理解就是:

let MyComponent = Vue.component('name', definition)
==>
let MyComponent = Vue.extend(definition)
Vue.options.components['name'] = MyComponent

若只传一个参数

Vue.component('name')
==>
// 取Vue上的全局组件'name'
Vue.options.components['name']

Vue.extend(definition)Vue.component('name', definition)的区别
Vue.extend(definition)返回一个组件
Vue.component('name', definition)则将这个组件绑定在Vue上,即Vue.options.components['name']上,这样在new Vue()时可以直接使用这个组件

Vue源码分析--Vue.component相关推荐

  1. vue源码分析系列二:$mount()和new Watcher()的执行过程

    续vue源码分析系列一:new Vue的初始化过程 在initMixin()里面调用了$mount() if (vm.$options.el) {vm.$mount(vm.$options.el);/ ...

  2. [Vue源码分析] 模板的编译

    最近小组有个关于vue源码分析的分享会,提前准备一下- 前言: Vue有两个版本:Runtime + Compiler . Runtime only ,前者是包含编译代码的版本,后者不包含编译代码,编 ...

  3. [Vue源码分析]自定义事件原理及事件总线的实现

    最近小组有个关于vue源码分析的分享会,提前准备一下- 前言: 我们都知道Vue中父组件可以通过 props 向下传数据给子组件:子组件可以通过向$emit触发一个事件,在父组件中执行回调函数,从而实 ...

  4. [Vue源码分析] v-model实现原理

    最近小组有个关于vue源码分析的分享会,提前准备一下- 前言: 我们都知道使用v-model可以实现数据的双向绑定,及实现数据的变化驱动dom的更新,dom的更新影响数据的变化.那么v-model是怎 ...

  5. Vue源码分析——第三章

    Vue源码分析--第一章 Vue源码分析--第二章 // only used in dev mode//检测 val必需是数字function checkDuration(val, name, vno ...

  6. [Vue源码分析] Virtual DOM

    最近小组有个关于vue virtual dom的分享会,提前准备一下- 读前须知: 本文章涉及源码版本为Vue 2.5.2,文中涉及到源码部分,解释直接写在源码中(中文部分为本人添加),截图尽量放完整 ...

  7. vue源码分析系列三:render的执行过程和Virtual DOM的产生

    render 手写 render 函数,仔细观察下面这段代码,试想一下这里的 createElement 参数是什么 . new Vue({el: '#application',render(crea ...

  8. vue源码分析系列一:new Vue的初始化过程

    import Vue from 'vue'(作者用的vue-cli一键生成) node环境下import Vue from 'vue'的作用是什么意思? 在 NPM 包的 dist/ 目录你将会找到很 ...

  9. 大前端-Vue源码分析

    Vue源码解析-响应式原理 以下内容来自 拉勾教育大前端训练营 笔者在学习过程中对笔记进行的一个整理 心得体会 嘿嘿嘿~~~ 首先说说拉勾教育大前端训练营的课程视频吧,课程的质量是真的很好哦,并且已经 ...

最新文章

  1. 如何利用遗传算法进行自变量降维(代码部分)
  2. RHCSA 系列(六): 使用 Parted 和 SSM 来配置和加密系统存储
  3. PostgreSQL SystemTap on Linux 转
  4. NHibernate学习笔记(二):one-to-one关系映射
  5. 国外的老师是怎么教Golang的?
  6. java基础环境搭建_java基础环境搭建
  7. SharePoint 上传附件
  8. ad 单点登录 java 访问权限_如何配置Portal 基于AD的单点登录配置
  9. maya拓扑插件_3D角色模型,Maya、Zbrush人头建模
  10. 深度学习推荐模型-WideDeep
  11. 好程序员大数据视频教程之快速入门Scala篇
  12. 争分夺秒的一晚和赛尔的烂网络
  13. ubuntu zip文件解压失败
  14. 此计算机上未安装sql2000,Windows10系统安装sql2000没有反应如何解决
  15. Duplicate entry 'dage' for key 'PRIMARY'
  16. IPQ8072A Qualcomm IPQ CallManager拨号程序移植文档
  17. 什么是配置管理?配置管理由专人负责吗?
  18. 自建ngrok服务支持https访问
  19. 暨南大学导师推荐、导师口碑、导师黑名单
  20. [附源码]JAVA毕业设计家庭记账系统(系统+LW)

热门文章

  1. snort mysql_入侵检测:Snort,Base,MySQL和Apache2在Ubuntu 7.10(Gutsy Gibbon)
  2. 修改自定义导航栏按钮文字内容的方法
  3. iptable防火墙
  4. 个性化推荐里的算法和数学原理
  5. 发斯蒂芬撒的撒的撒的发
  6. 雷达坐标系之间的转换
  7. 微波、光波炉加热原理
  8. WSL2配置图形界面-MATE
  9. Tensorflow-MNIST代码解析
  10. 计算机组成原理解释流水线,6计算机组成原理第6章流水线原理.ppt