当前位置: 首页 > news >正文

vue2和vue3的区别详解

vue2 VS vue3

对比vue2vue3
配置脚手架cmd命令行可视化方式创建脚⼿架
组件通信props、$emit、provide、$arrts、EventBus等props、$emit、provide、inject、arrts等
数据监听watch,computedwatch,watchEffect,computed
双向绑定Object.definePropertyProxyAPI
⽣命周期四个阶段beforeCreatecreated—>setup
api选项式Options API组合式Composition API

双向数据绑定原理

vue2 的双向数据绑定是通过ES5的⼀个API,Object.defineProperty()对数据进⾏劫持,结合发布订阅模式的⽅式来实现的,也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变;

其核心是 Object.defineProperty()方法,给Vue中的数据绑定get和set方法,当获取数据的时候,调用get方法,修改data中的数据的时候调用set方法,通过watcher监听器去更新视图,完成数据的双向绑定。

vue3 中使⽤了ES6的ProxyAPI对数据代理,通过 reactive() 函数给每⼀个对象都包⼀层 Proxy,通过 Proxy 监听属性的变化,从⽽实现对数据的监控。

相对于Object.definePropery()有以几个优点:1.Proxy直接代理整个对象而非对象属性,这样只需要做一层代理就可以监听同级结构下的所有属性变化, 包括新增属性和删除属性。 2.Proxy可以监听数组的变化。

生命周期对比

vue2生命周期vue3生命周期描述
beforeCreate()已去掉setup代替

创建阶段

Created()已去掉setup代替
beforeMount()onBeforeMount

挂载阶段

mounted()onMounted
beforeUpdateonBeforeUpdate更新阶段
updated onUpdated
beforeDestroyonBeforeUnmount

销毁阶段

destrovedonUnmounted

建立数据发生了变化

        vue2把数据放在data中,vue3把数据放在setup中。

是否支持碎片化

        vue2.0只允许有一个根标签,vue3.0支持碎片化,可以拥有多个根节点。

Vue2
<template><div><header></header><main></main><footer></footer></div>
</template>
Vue3
<template><header></header><main></main><footer></footer>
</template>

组件通信

  • props通信
    • vu3 父传子                  
    • vue2父传子
      1.定义数据 
      data(){return{goodsList:[{id:1,name:'方便面',price:2.5,info:'好吃不贵'},{id:2,name:'火腿肠',price:2,info:'价钱合理'},{id:3,name:'鹌鹑蛋',price:4.5,info:'物美价廉'},]}},2.放到模板的子组件中
      <MyTest :item="goodsList[1]"></MyTest>3.子组件props接收export default {//接收数据props:['item']}

    • vue3子传父

http://www.lryc.cn/news/484063.html

相关文章:

  • 一文读懂LEED绿建
  • git上feature合并到development分支
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备:大华IPC摄像头局域网访问异常解决办法
  • 校园二手交易网站毕业设计基于SpringBootSSM框架
  • 基于大语言模型意图识别和实体提取功能;具体ZK数值例子:加密货币交易验证;
  • 论文笔记 SuDORMRF:EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION
  • 机器学习系列----KNN分类
  • 贪心算法day 06
  • HTML之列表学习记录
  • Redo与Undo的区别:数据库事务的恢复与撤销机制
  • 【话题讨论】AI赋能电商:创新应用与销售效率的双轮驱动
  • 重构开发之道,Blackbox.AI为技术注入智能新动力
  • 机器学习在医疗健康领域的应用
  • M芯片Mac构建Dockerfile - 注意事项
  • 系统架构设计师论文
  • 速盾:CDN 和高防有什么区别?
  • goframe开发一个企业网站 rabbitmq队例15
  • 设计模式-七个基本原则之一-迪米特法则 + 案例
  • 【数学二】线性代数-二次型
  • 320页PDF | 集团IT蓝图总体规划报告-德勤(限免下载)
  • HTB:Sea[WriteUP]
  • Java 网络编程(一)—— UDP数据报套接字编程
  • ECharts图表图例8
  • Redis中的线程模型
  • [产品管理-77]:技术人需要了解的常见概念:科学、技术、技能、产品、市场、商业模式、运营
  • 鼠标点击(一)与3D视口窗口的交互
  • 线程-2-线程概念与控制
  • TortoiseSVN提示服务器凭证检核错误:站点名称不符
  • Diffusion Policy——斯坦福机器人UMI所用的扩散策略:从原理到其编码实现(含Diff-Control、ControlNet详解)
  • (动画版)排序算法 -希尔排序