前端押题 Vue 3

90 阅读1分钟

Vue 3

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 属性支持函数了