千鋒教育前端Vue3.0全套視頻教程(Kerwin2023版,Vue.js零基礎(chǔ)

vue2中無論元素是否參與更新,每次都會重新創(chuàng)建,然后渲染
- vue3中對于不參與更新的元素,會做靜態(tài)提升,只會被創(chuàng)建一次,在渲染時直接復(fù)用即可 默認(rèn)情況下onClick事件會被視為動態(tài)綁定,所以每次都會追蹤他的變化,但是因為是同一個函數(shù),所以沒有追蹤變化,直接緩存起來復(fù)用由于在執(zhí)行setup函數(shù)的時候,還沒有執(zhí)行到Created方法 ,所以還不能使用 data 和 methods 的方法
- this 為 undefined【因為vue避免我們錯誤使用,所以將this置為undefined】
setup函數(shù)必須是同步的不能是異步的通過當(dāng)前數(shù)據(jù)的 __v_ref來判斷的
- 如果有__v_ref這個私有屬性的hauler,并且值為true,那么代表就是一個ref類型的數(shù)據(jù)非遞歸監(jiān)聽就是,視圖只能監(jiān)聽到數(shù)據(jù)第一層變化,而監(jiān)聽不到更深層的變化。這兩個函數(shù)創(chuàng)建出來變量是非遞歸監(jiān)聽的,只為某個對象的私有(第一層)屬性創(chuàng)建淺層的響應(yīng)式代理,不會對“屬性的屬性”做深層次、遞歸地響應(yīng)式代理,而只是保留原樣。如果想通過toRaw拿到ref類型的原始數(shù)據(jù)(創(chuàng)建時傳入的按那個數(shù)據(jù)),那么就必須明確的告訴toRaw方法,要獲取的是.value的值,因為經(jīng)過Vue處理后,.value中保存的才是當(dāng)初創(chuàng)建時傳入的那個原始數(shù)據(jù)
自定義Ref函數(shù):返回一個ref對象,可以顯示地控制以來追蹤和觸發(fā)響應(yīng)式,定義customRef時,我們要在獲取值時告訴vue數(shù)據(jù)要追蹤變化,使用track()方法,在設(shè)置值時告訴vue要觸發(fā)頁面更新,使用trigger()
標(biāo)簽: