# vue2-source-new **Repository Path**: itcc888/vue2-source-new ## Basic Information - **Project Name**: vue2-source-new - **Description**: 手写 Vue2 源码,第二次自己跟写版 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-10-15 - **Last Updated**: 2023-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 手写 Vue2 源码 第二次自己跟写版 ##### 数据劫持方式对数组有什么影响? *这样递归的方式其实无论是对象还是数组都进行了观测 但是我们想一下此时如果 data 包含数组比如 a:[1,2,3,4,5] 那么我们根据下标可以直接修改数据也能触发 set 但是如果一个数组里面有上千上万个元素 每一个元素下标都添加 get 和 set 方法 这样对于性能来说是承担不起的 所以此方法只用来劫持对象* ##### Object.defineProperty 缺点? *对象新增或者删除的属性无法被 set 监听到 只有对象本身存在的属性修改才会被劫持* ##### AST 和 DOM 的区别? * AST 描述的是语法本身,语法中没有的不会被描述出来; * 虚拟 dom 是描述真实 dom ,可以自己添加属性; ##### Object.defineProperty数据劫持核心 兼容性怎么样? 在ie9以及以上; ##### 如果多次调用 nextTick,只会执行一次异步,等异步队列清空之后再把标志变为 false ##### diff 算法的过程实际是:一边比较新旧 vnode,一边改变真实 DOM 节点