# vue-SourceCode **Repository Path**: madeliness/vue-SourceCode ## Basic Information - **Project Name**: vue-SourceCode - **Description**: vue2源码研究相关代码 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-07-21 - **Last Updated**: 2025-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue, Vuex ## README # vue-SourceCode #### 介绍 vue源码研究相关代码,本仓库基于vue2源码拆分与重写,旨在深度理解vue的整个响应式双向数据绑定的思想以及实现思路。 #### 软件架构 1. study-ast:vue的重要组成部分,通过栈的数据结构及思想实现ast-抽象语法树,将模板字符串拆分成一个tokens数组并返回。 2. study-data-reactive:数据响应式的实现思路及具体内容,包含Observer 类(将一个正常的object转换为每个层级的属性都是响应式(可以被侦测的)的object),Dep类(添加订阅,添加依赖,通知更新),Watcher观察者类(对于依赖收集的处理),defineReactive方法遍历数据的可枚举属性,利用Object.defineProperty中的get(),set()重写属性方法,实现数据响应式。 3. study-directive:V-model的实现思路及代码示例,相比study-data-reactive添加了Compile模板编译类,重写了array的7个方法,结合vue实现模板编译实现v-model指令功能。 4. studySnabbdom:虚拟dom渲染成真实dom的具体实现过程,包含diff算法新旧节点双端对比的实现思路和h函数渲染过程。 5. templateEngine:编译模板解析的实现,比如一个包含响应式变量的`