vue2和vue3的区别
提问
vue2和vue3的区别
区别
响应式原理
vue2 通过
Object.defineProperties()
实现数据劫持,结合 发布/订阅模式,将数据变更通知给Watcher,实现响应式。 vue3 通过Proxy
做数据劫持,实现响应式对象,同时也保留了getter/setter
实现ref()
。使用 工厂函数
createApp()
代替 构造函数new Vue()
创建应用实例使用
app.config.globalProperties
代替Vue.prototype
用于添加全局属性移除了
Vue.extend
v-model
使用modelValue/emit
代替了value/input
的实现key
现在不需要添加在v-if
v-else
v-else-if
上,Vue会自己生成,且可以添加在<template>
上。v-if
的优先级总是高于v-for
(vue2是反过来的)移除了
filter
过滤器自定义指令使用了全新的生命周期
移除了
$children
将
$listener
合并到了$attrs
中,$attrs
也包含了class
和style
使用
beforeUnmount
和unmounted
代替beforeDestroy
和destroyed
新增了
setup()
以及 组合式API新增内置组件
<Teleport>
和<Suspense>