关于Vue3

57 阅读1分钟

BingWallpaper-0213.jpg

1. Composition API区别于Vue2的Option API

2. Fragment(碎片)

  • <template></template>不再需要根元素包裹,Vue3内部会有自动将其包含在Fragment虚拟元素中
  • 好处:减少标签层级,减小内存占用

3. script差异

  • 使用ts只需要设置lang
  • defineComponent方法创建一个组件
  • export default直接导出一个组件

4. setup(Composition API入口)

  • 返回一个对象,setup中的方法和methods中的方法合并。setup中数据和data中数据合并,如若重名,按setup中执行
  • setup中方法在methods、data中可以拿到,反之不可,因为setup中this=undefined

5. suspense组件

  • <suspense></suspense>放置一些不确定的操作。比如:异步

6. setup参数

  • setup(props, context)
  • props:接收父组件传递的值,父组件信息传递的props
  • context:
    | attrs | slots | emit | | --- | --- | --- | | this.$attr | this.$slots | this.$emit | | 除props之外的属性 | 插槽数据 | 父子传参 |

7. ref

  • setup中数据都不是响应式,修改了数据,视图并不会更新
  • 同样可以获取元素
  • 在setup中得给ref指定类型HTMLElement

8. reactive

  • 接收一个普通对象然后返回该普通对象的响应式代理对象(底层通过使用proxy进行代理)

9. computed区别于Vue2

10. provide、inject跨层级组件通信(祖孙)

11. Teleport传送组件:可以将组件进行传送

12. 生命周期

  • | Vue2.x | Vue3.x | | --- | --- | | beforeCreate | setup() | | created | setup() | | beforeMount | onBeforeMount | | mounted | onMounted | | beforeUpdate | onBeforeUpdate | | updated | onUpdated | | beforeDestroy | onBeforeUnmount | | destroyed | onUnmounted | | activated | onActivated | | deactivated | onDeactivated | | errorCaptured | onErrorCaptured | | | onRenderTriggered | | | onRenderTracked |