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引入什么