vue2.x与vue3.x区别(......)

1.安装命令

vue2.x

npm uninstall -g vue-cli

vue3.x

npm install -g @vue/cli

2.项目初始化

vue2.x 项目初始化命令:vue init <模板名称(webpack比较常用)> [项目名称]

vue init webpack project-name

vue3.x 项目初始化命令:vue create [项目名称]

vue create project-name

vue3.x提供了可视化创建脚手架,可以更加方便的对插件和依赖进行管理和配置。

3.比较与区别

1)vue3.x新特性总结

  • 虚拟DOM重写,速度更快
  • 常驻代码大小控制在10kb gzipped上下
  • 基于 Proxy 观察者机制以满足全语言覆盖以及更好的性能
  • 添加TypeScript支持,使外部贡献者更有信心做改动
  • 放弃 Object.defineProperty ,使用更快的原生 Proxy
  • template下支持多个根节点
  • 组合式API

在开发过程中两个版本的使用方法表面上没有很大的区别,但是底层方法变化较大,其中就包括渲染方式,数据监听,双向绑定,生命周期,vue3.x更精准,体积更小。

双向绑定在vue2.x中实现是利用ES5中的Object.defineProperty()对数据进行劫持、结合、发布订阅来实现的。

vue3.x中使用ES6中的Proxy 对数据进行代理,通过 reactive() 函数给每一个对象都包一层 Proxy,通过 Proxy 监听属性的变化,从而实现对数据的监控。

优势:

1.defineProperty只能监听某个属性,不能对全对象监听
可以省去for in、闭包等内容来提升效率(直接绑定整个对象即可)
2.可以监听数组,不用再去单独的对数组做特异性操作,通过Proxy可以直接拦截所有对象类型数据的操作,完美支持对数组的监听

例如vue2.x当数据包裹过多时,数据已更新,但是页面数据未更新,经常用到$set,在vue3.x中就不需要

2)生命周期比较

 图示方法的变化

eforeCreate -> use setup()

created -> use setup()

beforeMount -> onBeforeMount

mounted -> onMounted

beforeUpdate -> onBeforeUpdate

updated -> onUpdated

beforeUnmount -> onBeforeUnmount

unmounted -> onUnmounted

errorCaptured -> onErrorCaptured

renderTracked -> onRenderTracked

renderTriggered -> onRenderTriggered

activated -> onActivated

deactivated -> onDeactivated

1、去掉了vue2.0中的 beforeCreate 和 created 两个阶段,同样的新增了一个 setup

2、beforeMount 挂载之前    改名  onBeforeMount

3、mounted 挂载之后    改名  onMounted

4、beforeUpdate 数据更新之前    改名  onBeforeUpdate

5、updated 数据更新之后    改名  onUpdated

6、beforeDestroy 销毁前    改名  onBeforeUnmount

7、destoryed 销毁后    改名  onUnmounted

8、errorCaptured 报错    改名  onErrorCaptured

setup 是围绕 beforeCreate 和 created 生命周期钩子运行的。

posted @ 2023-02-14 14:56  crystal_lemon  阅读(33)  评论(0)    收藏  举报  来源