vue2和vue3的區(qū)別

內(nèi)部優(yōu)化
1.vue2與vue3雙向數(shù)據(jù)綁定原理不同
2.靜態(tài)變量提升
3.pathFlag 標(biāo)記
4.緩存事件處理函數(shù)
寫法優(yōu)化
1.vue3碎片化,可寫多個(gè)根節(jié)點(diǎn)
2.api 不同 選項(xiàng)型 vue2: opsition api 組合型 vue3: composition api
3.數(shù)據(jù)存儲方式不同 vue2:data vue:ref reactive
1.vue2與vue3雙向數(shù)據(jù)綁定原理不同

vue2 是利用es5的object.defineProperty對數(shù)據(jù)進(jìn)行劫持結(jié)合發(fā)布訂閱模式實(shí)現(xiàn)的
vue3是利用es6的proxy API 對數(shù)據(jù)進(jìn)行的一個(gè)代理
細(xì)分

  1. diff 算法優(yōu)化,新增PatchFlag標(biāo)記 只比較帶有靜態(tài)標(biāo)記的節(jié)點(diǎn)
    2.靜態(tài)提升 vue3中對于不參與更新的元素會做靜態(tài)提升,只會創(chuàng)建一次,在渲染的時(shí)候復(fù)用即可
    3.事件監(jiān)聽緩存 默認(rèn)情況下會給函數(shù)打一個(gè)靜態(tài)標(biāo)記 patchflag:8,表明這是個(gè)函數(shù),會進(jìn)行緩存
2.vue3支持碎片

就是在組件中可以放置多個(gè)根節(jié)點(diǎn)

3.vue3中采用composition API

vue2:采用的選項(xiàng)型API(opsition API)
vue3:采用的合成型API(composition API

4.建立的數(shù)據(jù)方式不同

vue2:數(shù)據(jù)是放置在data屬性中
vue3:需要使用setup 方法,該方法在初始化構(gòu)造的時(shí)候觸發(fā)
注:ref:需要value 訪問,內(nèi)部還是使用的defineProperty set get 方法進(jìn)行監(jiān)聽(proxy 不支持基本類型的監(jiān)聽)
reactive: 使用的proxy對數(shù)據(jù)進(jìn)行的一個(gè)代理

5.聲明周期函數(shù)不同

vue2:
beforeCreate (初始化前)
created (初始化完成)
beforeMount(掛載前)
mounted (掛載完成)
beforeUpdate (更新前)
updated (更新完成)
beforeDestory (銷毀前)
distoryed(銷毀完成)
activeted(頁面緩存執(zhí)行)
deactiveted(頁面緩存)

vue3:
setup();
onBeforeCreate (初始化前)
onCreated (初始化完成)
onBeforeMount(掛載前)
onBMounted (掛載完成)
onBeforeUpdate (更新前)
onUpdated (更新完成)
onBeforeUnmount (銷毀前)
onUnmount(銷毀完成)
onActiveted(頁面緩存執(zhí)行)
onDeactiveted(頁面緩存)

6.傳參方式不同,由vue3 setup()特性決定的
7.vue3新增的Teleport瞬移組件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Vue 3 的 Template 支持多個(gè)根標(biāo)簽,Vue 2 不支持 Vue 3 有 createApp(),而 ...
    sweetBoy_9126閱讀 30,581評論 0 15
  • 組件來說,大多代碼在Vue2和Vue3都非常相似。Vue3支持碎片(Fragments),就是說在組件可以擁有多個(gè)...
    Sun_d9e7閱讀 675評論 2 1
  • 一、vue3的理解和區(qū)別 1、性能優(yōu)化 雙向響應(yīng)原理由Object.defineProperty改為基于ES6的P...
    哈哈哈wy閱讀 1,156評論 0 0
  • 1:vue2和vue3雙向數(shù)據(jù)綁定原理發(fā)生了改變 vue2的雙向數(shù)據(jù)綁定是利用ES5的一個(gè)APIObject.de...
    隨筆記呀閱讀 26,592評論 0 72
  • 一、Vue2和Vue3的區(qū)別 1、創(chuàng)建方式的不同: (1)、vue2:是一個(gè)構(gòu)造函數(shù),通過該構(gòu)造函數(shù)創(chuàng)建一個(gè)Vue...
    是Alisa呀閱讀 1,819評論 0 1

友情鏈接更多精彩內(nèi)容