# vue2源码 **Repository Path**: childe-jia/vue2-source-code ## Basic Information - **Project Name**: vue2源码 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-30 - **Last Updated**: 2026-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - vue.component 的作用 就是收集全局定义的 ID 和 definition - vue.options.components[组件名]=包装成构造函数(定义) - vue.extend 返回一个子类而且子类会记录自己的选项「为啥 vue 组件中的 data 不能是一个对象呢」· ``` function extend(选项) { function Sub() { this._init() } Sub.options = 选项 return Sub } let Sub = Vue.extend({data:数据}) new Sub() mergeOptions(Sub.options,Vue.options) new Sub() mergeOptions(Sub.options,Vue.options) ``` - 创建子类的构造函数的时候,会将全局的组件,和自己身上定义的组件合并「组件的合并,会先查找自己的,没有再查找全局的」 - 组件的渲染,开始渲染组件会编译组件模版,变成 render 函数 - 调用 render 函数,生成组件的虚拟节点 createElement 判断是不是个组件 - 组件增加初始化钩子,增加 componentOptions(constructor) 选项 - 稍后创建组件真实节点我们只需要 new constructor() - 创建真实节点