1、 Vue2.0 和 Vue3.0 有什么区别? 响应式系统的重新配置,使用代理替换对象.define属性,使用代理优势: 可直接监控阵列类型的数据变化 监听的目标是对象本身,不需要像Object.defineProperty那样遍历每个属性,有一定的性能提升 可拦截应用、拥有密钥、有等13种方法,以及Object.define属性没有办法 直接添加对象属性/删除 新增组合API,更好的逻辑重用和代码组织 重构虚拟 DOM 模板编译时间优化,将一些静态节点编译成常量 slot优化,采取槽编译成懒人功能,拿槽渲染的决定留给子组件 在模板中提取和重用内联事件(最初,每次渲染时都会重新生成内联函数) 代码结构调整,更方便树摇动,使其更小 使用打字脚本替换流 2、Vue3带来了什么改变? 1.性能的提升 打包大小减少41%
初次渲染快55%, 更新渲染快133%
内存减少54%
......
2.源码的升级 使用Proxy代替defineProperty实现响应式
重写虚拟DOM的实现和Tree-Shaking
......
3.拥抱TypeScript Vue3可以更好的支持TypeScript
4.新的特性 Composition API(组合API)
setup配置
ref与reactive
watch与watchEffect
provide与inject
......
新的内置组件
Fragment
Teleport
Suspense
其他改变
新的生命周期钩子
data 选项应始终被声明为一个函数
移除keyCode支持作为 v-on 的修饰符
......
4.vue3还有哪些其他改变?
data选项应始终被声明为一个函数。
过度类名的更改:
Vue2.x写法
.v-enter, .v-leave-to { opacity: 0; } .v-leave, .v-enter-to { opacity: 1; }