首页 > 其他分享 >vue2和vue3的区别

vue2和vue3的区别

时间:2024-07-09 19:09:34浏览次数:20  
标签:优先级 区别 响应 vue2 vue3 节点 属性

原理方面:

  1. vue3响应式原理改成了proxy,解决了数组无法通过下标修改,无法监听到对象属性的新增和删除的问题,提升了响应式效率。
  • vue2里是使用了this.set()方法设置新属性,删除则需要this.delete()方法删除属性。
  1. vue3也并非全部舍弃了Object.defineProperty,通过reactive定义的响应式数据使用proxy包装出来,而ref还是需要Object.defineProperty去给了一个空对象,定义一个value属性来做响应式。
  2. 生命周期增加了组合式API,setup方法。
  3. 组合式API的写法下,源码改成了函数式编程,方便按需引入,有些功能是必须分配按需引入的,比如tree-shaking。所以vue3在这方面能让tree-shaking打包会更小。
  4. 性能优化,增加了静态节点标记,会标记静态节点,不对静态节点进行对比。
  5. vue3不推荐使用mixin进行复用逻辑提取,而是推荐写成hook。
  6. v-model应用于组件时,监听的事件和传递的值改变。
  7. vue3更加的配合了ts的使用。
    9.v-if和v-for的优先级不一样,比如vue2里v-for优先级更高,vue3里v-if优先级更高。
    10.vue3新增了一个传送门的组件,Teleport。
  <Teleport to="body">
    需要传送到body下面的内容
  </Teleport>

11.diff算法的不同。

标签:优先级,区别,响应,vue2,vue3,节点,属性
From: https://www.cnblogs.com/jia-95/p/18292584

相关文章

  • ESM(ESModule)和CJS(CommonJS)的区别
    ESM和CJS的区别1.CJS2.EMS3ESM与CJS的区别3.1ESM输出的是==值的引用==,CJS输出的是==值得拷贝==3.2CJS的输出是运行时加载,而ESM是编译时输出接口3.3CJS是同步加载,ESM是异步加载1.CJSNode.js模块加载规范.js或.cjs文件,使用require加载,module.exports/exports......
  • 设计模式之策略模式和工厂模式的区别
    1.前言本篇博客转载于策略模式与工厂模式比较2.区别这段时间看了一些设计模式,看到策略模式与工厂模式的时候,总是感觉他们很相似,不要区分,到具体的场景了你可能还在徘徊到底用工厂还是策略呢?这几天就想写一篇关于策略模式与工厂模式区别的文章,但一直没思路,昨天跟淘宝mm聊了聊,今天......
  • Vue3 pdf.js将二进制文件流转成pdf预览
    好久没写东西,19年之前写过一篇Vue2将pdf二进制文件流转换成pdf文件,如果Vue2换成Vue3了,顺带来一篇文章,pdf.js这个东西用来解决内网pdf预览,是个不错的选择。首先去pdfjs官网,下载需要的文件然后将下载的东西放到public文件下接下来看一下代码<auto-dialogtitle="PDF预......
  • 创建vue2项目执行npm install -g @vue/cli报错 no such file or directory, mkdir '\
    第一步:查看默认全局安装路径。指令:npmconfiggetprefix我这里路径npmconfiggetprefixE:\NVM\nvm\node_global第二步:不存在这个路劲进行更换npmconfigsetprefix"D:\Develop\nodejs"nodejs里面有node_cachenode_globalnode_modules这些文件npmconfiggetpre......
  • Vue3-slot
    描述      为了能在当前组件中使用其他组件中的内容,并且可以改变其他组件中的内容结构。使用的技术就叫做“插槽”。      在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段。举例:子组件<FancyButton/>:<template><butto......
  • js浅拷贝与深拷贝的区别和实现方式
           ......
  • 浅拷贝和深拷贝的区别
    一、数据类型在讨论深浅拷贝之前,我们先说说数据类型,因为深浅拷贝与数据类型有关。数据类型分为基本数据类型(String、Number、Boolean、Null、Undefined、Symbol(es6引入的一种类型))和引用数据类型(Object、Array、Function)。基本数据类型特点:直接存储在栈中;引用数据类型:它真......
  • 【转】你了解 localhost 与 127.0.0.1 的区别吗?
    引言在信息技术的世界里,localhost和127.0.0.1频繁出现在各种网络及软件开发的场景之中。它们似乎指向同一个意义——那就是你的本地机器。但仔细探究之下,你会发现它们之间其实存在着一些微妙的差异。今天,我们就来深究这两者之间的区别,并揭示它们在实际应用中的重要性。基本概......
  • @Autowired和@Resource有哪些区别
    一、注解的作用@Autowired和@Resource都是用来实现Bean的自动注入功能。二、@Autowired和@Resource的区别1、所属的包不同@Autowired是Spring的注解。@Resource是JSR-250的注解。IDEA有时候会在@Autowired注解上面提示Fieldinjectionisnotrecommended(字段注入是......
  • Franka 机器人中,标称末端执行器(Nominal End-Effector)与末端执行器(End-Effector)之
    在Franka机器人中,标称末端执行器(NominalEnd-Effector)与末端执行器(End-Effector)之间也存在一些区别。具体如下:定义:标称末端执行器(NominalEnd-Effector)是指Franka机器人在设计和制造时预设的、默认的末端执行器。末端执行器(End-Effector)则是指实际安装在机器......