Vue3面试题笔记
Vue 3 为什么使用 Proxy?
- 弥补 Object.defineProperty 的两个不足
- 动态创建的 data 属性需要用 Vue.set 来赋值,Vue 3 用了 Proxy 就不需要了
- 基于性能考虑,Vue 2 篡改了数组的 7 个 API,Vue 3 用了 Proxy 就不需要了
- defineProperty 需要提前递归地遍历 data 做到响应式,而 Proxy 可以在真正用到深层数据的时候再做响应式
Vue 3 为什么使用 Composition API?
参考尤雨溪的博客:传送门
- Composition API 比 mixins、高阶组件、extends、Renderless Components 等更好,原因有三:
- 模版中的数据来源不清晰。
- 命名空间冲突。
- 性能。
- 更适合 TypeScript
Vue 3 对比 Vue 2 做了哪些改动?
官方文档写了(中文在这),这里列出几个容易被考的:
- createApp() 代替了 new Vue()
- v-model 代替了以前的 v-model 和 .sync
- 根元素可以有不止一个元素了
- 新增 Teleport 传送门
- destroyed 被改名为 unmounted 了(before 当然也改了)
- ref 属性支持函数了