vue2和vue3的区别?

1.vue2和vue3双向绑定 方法不同

vue2:object.defineProperty
vue3:new Proxy()
object.defineProperty…后添加的属性是劫持不到的
new Proxy()…即使是后添加的属性也是可以劫持到,绑定的时候还不需要循环

2.vue3中不存在$set(),因为不存在视图不更新问题

3.v-if和v-for 优先级不同

vue2: v-for > v-if vue3: v-for < v-if

4.ref和$children 也不同了

5.关于写法

vue2是选项式api == >
使用选项式 API,我们可以用包含多个选项的对象来描述组件的逻辑,例如 data、methods 和 mounted。选项所定义的属性都会暴露在函数内部的 this 上,它会指向当前的组件实例。
vue3可以向下兼容(选项式api),也可以组合式api或setup语法糖形式 ==>
通过组合式 API,我们可以使用导入的 API 函数来描述组件逻辑。在单文件组件中,组合式 API 通常会与

6.vue3中没有this (怎么获取类似于vue2中的this)

import (getCarrenInstance) from ‘vue’

7. vue2和vue 3组件引用的区别

Vue 2和Vue 3在组件引用方面确实存在一些区别,尤其是在组件的注册和导入方式上

一、Vue 2与Vue 3在组件引用上的区别:

组件注册方式:
Vue 2中,组件可以通过全局注册或局部注册的方式使用。全局注册的组件可以通过Vue.component方法进行注册,而局部注册则是在某个Vue实例或组件内部通过components选项进行注册。
Vue 3中,虽然组件的注册方式与Vue 2相似,但API有所调整。全局注册使用app.component()方法,而局部注册仍然是通过components选项。

组件导入方式:
Vue 2中,通常使用ES6的import语法来导入组件。例如,导入一个名为MyComponent.vue的组件文件,可以这样写:import MyComponent from ‘./MyComponent.vue’。

Vue 3在组件导入方面没有显著变化,仍然使用类似的语法。

推荐使用vite

webpack与 vite 的区别

1、webpack会先打包,然后启动开发服务器,请求服务器时直接给予打包结果。

2、由于vite在启动的时候不需要打包,也就意味着不需要分析模块的依赖、不需要编译,因此启动速度非常快。当浏览器请求某个模块时,再根据需要对模块内容进行编译。这种按需动态编译的方式,极大的缩减了编译时间,项目越复杂、模块越多,vite的优势越明显

3、由于现代浏览器本身就支持ES Module,会自动向依赖的Module发出请求。vite充分利用这一点,将开发环境下的模块文件,就作为浏览器要执行的文件,而不是像webpack那样进行打包合并。(代码需开启本地服务才能运行,否则会产生跨域错误)

4、vite是按需加载,webpack是全部加载:在HMR(热更新)方面,当改动了一个模块后,vite仅需让浏览器重新请求该模块即可,不像webpack那样需要把该模块的相关依赖模块全部编译一次,效率更高。

5、vite的优势在开发环境:当需要打包到生产环境时,vite使用传统的rollup(也可以自己手动安装webpack来)进行打包,因此,vite的主要优势在开发阶段。另外,由于vite利用的是ES Module,因此在代码中(除了vite.config.js里面,这里是node的执行环境)不可以使用CommonJS

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值