前端面试Vue3
Contents
1 Vue3为什么使用Proxy
- 弥补
Object.defineProperty
的两个不足- 动态创建的 data 属性需要用 Vue.set 来赋值,Vue 3 用了 Proxy 就不需要了
- 基于性能考虑,Vue 2 篡改了数组的 7 个 API,Proxy 可以完全对数组进行代理
- defineProperty 需要提前递归地遍历 data 做到响应式,而 Proxy 可以在真正用到深层数据的时候再做响应式(惰性)
2 Vue3为什么使用Composition API
-
答案参考尤雨溪的博客:Vue Function-based API RFC - 知乎 (zhihu.com)
-
Composition API 比 mixins、高阶组件、extends 等Vue2的组件逻辑复用模式更好,原因有三:
-
模版中的数据来源不清晰。
-
命名空间冲突。
-
性能。
-
-
更适合 TypeScript(相对Vue2)
-
抄 React Hooks
- ref() => useRef()
- watchEffect() => useEffect()
3 Vue3对比Vue2做了哪些改动
- createApp() 代替了 new Vue()
- 组合式API
- v-model 代替了以前的 v-model 和 .sync
- 根元素可以有不止一个元素了
- 新增 Teleport 传送门
- destroyed 被改名为 unmounted 了(before 当然也改了)
- ref 属性支持函数了
- setup(props, context) 函数是 vue3 中,专门为组件提供的新属性。它为我们使用 vue3 的 新特性提供了统一的入口
- setup函数是处于生命周期函数beforeCreate和 Created两个钩子函数之前的函数
- setup函数中是无法使用 data 和 methods 中的数据和方法的
- 在setup函数中定义的属性和方法最后都是需要 return 出去的,这样我们就可以在模板中直接访问该对象中的属性和方法
其他建议自己看看写写。
Author gsemir
LastMod 2021-07-21