欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > vue2和vue3的区别

vue2和vue3的区别

2025/7/9 3:04:28 来源:https://blog.csdn.net/Cwhat/article/details/143581626  浏览:    关键词:vue2和vue3的区别

在使用上:

  • 用组合式api替换选项式api,方便逻辑更加的聚合
  • 一些细节的使用点改变,例如:
    1、因为改成组合式api所以没有this
    2、生命周期没有creat,setup等同于create,卸载改成unmount
    3、vue3中v-if高于v-for的优先级
    4、根实例的创建从new app变成了createApp方法
    5、一些全局注册,比如mixin,注册全局组件,use改成了用app实例调用,而不是vue类调用
    6、新增了传送门teleport组件
    7、template模板可以不包在一个根div里

原理方面:
        
1,响应式原理从property改成了用proxy,解决了数组无法通过下标修改,无法监听到对象属性的新增和删除的问题(产生响应式的问题)。也提升了响应式的效率
        2,可以额外叙述vue3并不是完全抛弃了defineProperty,通过reactive定义的响应式数据使用proxy包装出来,而ref还是用的defineProperty去给一个空对象,定义了一个value属性来做的响应式
        3,组合式api的写法下,源码改成了函数式编程,方便按需引入,因为tree-shaking功能必须配合按需引入写法。所以vue3更好地配合tree-shaking能让打包体积更小
        4,性能优化,增加了静态节点标记。会标记静态节点,不对静态节点进行比对。从而增加效率。
        5,vue3不推荐使用mixin进行复用逻辑提取,而是推荐写成hook

// mixin 重复出现的数据和操作逻辑mixin
app.mixin({data(){return {num:1},methods:{addNum(){this.num += 1}}
})// 在vue2里可能是这样把一些经常需要用到的、重复出现的数字啊,方法啊mixin进去。// 但是在vue3中不会这样做了,因为在vue3中更贴近组合式API,mixin更贴近于选项式API,并且很容易和组件自身的冲突,所以建议用hook// Vue3  建议:方法名用use开头
import { ref } from "vue'
function useNum(){let num = ref(1);function addNum(){num.value += 1;}
return { num, addNum }
} 
export default useNum// 后续在组件中需要用到的时候直接引入这个方法 
import useNum from "./xx.js"
// 使用
const { num,addNum } = useNum()

        6,v-model应用于组件时,监听的事件和传递的值改变
                vue2 传递的是个value 监听的是 change/input 事件
                vue3 传递的是个 modelValue  监听的是update:modelValue事件
        7,ts更好地配合

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词