# fed-e-task-03-05 **Repository Path**: learning-summary/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-03-06 - **Last Updated**: 2021-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1、Vue 3.0 性能提升主要是通过哪几方面体现的? - 响应式系统升级,采用proxy拦截 - 编译效率优化,比如静态节点的优化 - 优化打包体积,移除不常用的api,tree-shaking ## 2、Vue 3.0 所采用的 Composition Api 与 Vue 2.x使用的Options Api 有什么区别? options api 逻辑很分散,不利于管理和维护 composition api 可以将代码逻辑分块管理,可以将同一功能抽出来放入一个函数中维护 ## 3、Proxy 相对于 Object.defineProperty 有哪些优点? 1. proxy 可以监听整个对象属性以及长度的变化而Object.defineProperty只能监听单个属性的变化并且不能监听数组的长度的变化 2. proxy有丰富的api,例如get、set、deleteProperty等等 3. proxy可以结合Reflect使用 ## 4、Vue 3.0 在编译方面有哪些优化? 1. 静态节点提升,只比较动态节点内容 2. 缓存事件处理函数 3. 升级vertur,使用Fragments ## 5、Vue.js 3.0 响应式系统的实现原理? 1. 通过proxy劫持目标对象,在get中收集依赖,在set和deleteProty中通知变化 2. get中具体收集依赖是将激活的函数,存在new Set中,new Set又在new map中是目标对象key的值,而map对象又在weakmap中是的值、键是target对象 3. 在通知更新的时候,最后拿到target中的weakMap中的 set集合,遍历set集中的函数,然后调用