# fed-e-task-03-05 **Repository Path**: ms_H/fed-e-task-03-05 ## Basic Information - **Project Name**: fed-e-task-03-05 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-03 - **Last Updated**: 2021-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1、Vue 3.0 性能提升主要是通过哪几方面体现的? - 主要体现方面 - 使用 Proxy 重写了Vue的响应式代码 - 优化了编译器 - 重写了虚拟DOM,从而让渲染和update的性能得到了大幅度提升 ## 2、Vue 3.0 所采用的 Composition Api 与 Vue 2.x 使用的 Options Api 有什么区别? 答: - Options Api包含(data、methods、props)等对象,开发复杂组件的时候同一个功能会被拆分到各个不同的选项 - Composition Api 用来解决options api 的问题,拥抱函数式编程,将整个功能的所有api都堆放在一起(更加的高内聚、低耦合),不管多大的项目都能快速地定位到这个功能的所有Api ## 3、Proxy 相对于 Object.defineProperty 有哪些优点? 答: - 对对象实现监听 - 有多层属性嵌套的时候,在访问属性的过程中自动处理下个层级 - 默认监听对象属性的添加和删除操作 - 默认监听数组索引和length属性 - 可以作为单独的模块属性 ## 4、Vue 3.0 在编译方面有哪些优化? - vue 3.0 编译优化 - 中标记和提升所有的静态根节点,diff的时候只需要对比动态节点内容 - 动态节点添加patch flag,每种标记代表不同类型的节点,根据节点类型只检查相关的绑定数据 - 对事件处理函数做了缓存处理 ## 5、Vue.js 3.0 响应式系统的实现原理? 答:vue 3.0 底层采用proxy对象实现,在初始化的时候不需要遍历对象的所有属性再通过defineProperty把属性转化成get和set。proxy对象会默认监听对象属性,如果访问对象的过程中有嵌套,会在访问属性的过程中处理下一级属性。并且在vue3 中对响应式系统做了封装和导出,可以作为模块单独使用