vue3的新特性

一、Composition API(组合式API)

vue2 是基于Object.defineProperty的getter/setter作的数据监听,而vue3 中则改为了ES6的Proxy机制。
1、提升性能,Vue2是通过层层递归的方式对数据进行劫持,并且数据劫持一开始就要进行层层递归(一次性递归),如果对象的路径非常深将会非常影响性能;而Proxy可以在用到数据的时候再进行对下一层属性的劫持。
2、Proxy可以实现对整个对象的劫持,而Object.defineProperty()只能实现对对象的属性进行劫持。所以对于对象上的方法或者新增、删除的属性则无能为力。
3、Proxy 支持对 Map、Set、WeakMap 和 WeakSet类型的代理;同时作为新标准将会受到浏览器厂商重点持续的性能优化。

1、setup函数

image.png

这些函数接受一个回调函数,当钩子被组件调用时将会被执行:

export default {
  setup() {
    // mounted
    onMounted(() => {
      console.log('Component is mounted!')
    })
  }
}

2、生命钩子函数

3、提供/注入

二、Teleport

三、片段

Vue 3 现在正式支持了多根节点的组件,也就是片段!

1、2.x 语法

在 2.x 中,由于不支持多根节点组件,当开发者意外创建一个时会发出警告。为了修复这个问题,许多组件被包裹在一个

中。




2、3.x 语法

在 3.x 中,组件可以包含多个根节点!但是,这要求开发者显式定义 attribute 应该分布在哪里。



四、触发组件选项

五、createRenderer API来自@vue/runtime-core

六、单文件组件组合式API语法糖(

你可能感兴趣的:(vue3的新特性)