V2和V3的區(qū)別

1.數(shù)據(jù)劫持方式不同

1.vue2的底層原理是基于 Object.defineProperty封裝的一種發(fā)布訂閱模式,利用它的get和set方法對對象的屬性進行監(jiān)聽

2.vue3是基于es6的proxy封裝的發(fā)布訂閱模式

數(shù)據(jù)劫持方式的不同是的v2和v3有何區(qū)別

Object.defineProperty只能監(jiān)聽對象的屬性并且不能監(jiān)聽動態(tài)添加的屬性。es6的proxy可以監(jiān)聽一切。

2.v-if和 v-for優(yōu)先級問題

v-for的優(yōu)先級?. 因為v-for的時候我們才開始渲染dom元素,這個v-if還?法進?判斷.

v-for和v-if不能同時使?,我們可以通過標簽,?如div或者template標簽來進?包裹,把v-if寫到包裹的標簽上?(寫到v-for外?

3.vue3中廢除了filter

4.生命周期鉤子函數(shù)的不同

v2 beforeDestroy 廢棄了 v3?beforeUnmount

v2 destroyed 廢棄了 v3 用?unmounted

? ?什么是vue的生命周期

vue實例從創(chuàng)建到銷毀的整個過程我們稱之為vue的?命周期

vue?命周期常?的鉤?函數(shù)?共有8個,分別是創(chuàng)建前后、掛載前后、更新前后以及銷毀前后. 分別對應的鉤?函數(shù)為beforeCreate 創(chuàng)建前、 created創(chuàng)建后、beforeMount 掛載前、mounted掛載后、beforeUpdate 更新前、updated更新后、beforeDestory 銷毀前、 destoryed銷毀后, ???開始加載的時候就會觸發(fā)創(chuàng)建前后和掛載前后的鉤?函數(shù), ?更新的鉤?函數(shù)需要當我們改變data的時候才能觸發(fā),?如 點擊按鈕,執(zhí)???法,在這個?式??給data??屬性重新進?復制操作,這個時候就會更新的鉤?函數(shù), 銷毀的鉤?函數(shù)必須得當組件進?切換的時候就會進?銷毀

5.router


vu2里面的watch一旦監(jiān)聽就不能取消了,vue3可以手動取消watch監(jiān)聽

代碼如下

const myActive=watch(activeName,(value,oldValue)=>{

? console.log(value,oldValue)

})

setTimeout(()=>{

? myActive()

},5000)

7.API

vue2是選項api 需要什么選項就直接寫什么選項

? ?vue3是組合api 所有的代碼都寫在setup里邊 ?需要什么就要import引入什么

8.Vue3默認使用懶加載

9.重構虛擬DOM

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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