Vue3主要通过优化虚拟DOM和渲染过程来提高性能。Vue3版本的虚拟DOM比Vue2更轻量级,渲染过程也更快。Vue3还引入了编译时优化,使得代码的体积更小,加载更快。
Vue3引入了Composition API,这是一种新的组件API,它将组件逻辑分离并组合在一起,使得组件更容易维护和测试。
vue2不支持碎片
Vue3支持碎片,就是说可以拥有多个根节点
Vue2是把数据放入data中,在vue2中定义数据变量是data(){};创建方法需要在methods:{}中进行创建。
Vue3需要使用一个新的setup()方法,此方法在组件初始化构造的时候触发。
使用以下三个步骤来建立反应性数据:
从vue引入reactive;
使用reactive() 方法来声明数据为响应性数据;
使用setup()方法来返回我们的响应性数据,从而template可以获取这些响应性数据。
vue2:父传子,用props,子传父用事件 Emitting Events。在vue2中,会调用this.$emit然后传入事件名和对象。
vue3:父传子,用props,子传父用事件 Emitting Events。在vue3中的setup()中的第二个参数content对象中就有emit,那么我们只要在setup()接收第二个参数中使用分解对象法取出emit就可以在setup方法中随意使用了。
vue2:vue2中使用slot可以直接使用slot;v-for与v-if在vue2中优先级高的是v-for指令,而且不建议一起使用。
vue3:vue3中必须使用v-slot的形式;vue3中v-for与v-if,只会把当前v-if当做v-for中的一个判断语句,不会相互冲突;
vue2:vue2中我们可以使用pototype(原型) 的形式去进行操作,引入的是构造函数。
vue3:vue3中需要使用结构的形式进行操作,引入的是工厂函数;vue3中app组件中可以没有根标签。
Vue3中,很多API都进行了重构,使得它们更加一致和易于使用。例如,createApp()函数可以用于创建Vue实例,而不是像Vue2中那样使用全局Vue对象。另外,Vue3还提供了更好的TypeScript支持,使得我们可以在代码中使用类型检查等高级特性。