vue模板編譯的過程和原理

vue模板編譯的過程/原理 ?

1.首先會解析模板,生成抽象語法樹(一種用JavaScript對象的形式來描述整個模板)。使用大量的正則表達(dá)式對模板進(jìn)行解析,遇到標(biāo)簽、文本的時候會調(diào)用對應(yīng)的鉤子函數(shù)進(jìn)行相關(guān)處理。

2.Vue的數(shù)據(jù)是響應(yīng)式的,但其實(shí)模板中并不是所有的數(shù)據(jù)都是響應(yīng)式的。有一些數(shù)據(jù)首次渲染后就不會再發(fā)生變化,對應(yīng)的DOM也不會變化。那么優(yōu)化過程就是深度遍歷抽象語法樹,按照相關(guān)條件對樹節(jié)點(diǎn)進(jìn)行標(biāo)記。這些被標(biāo)記的節(jié)點(diǎn)(靜態(tài)節(jié)點(diǎn)),我們就可以跳過對它們的比對,對運(yùn)行時的模板起到很大的優(yōu)化作用。

3.編譯的最后一步是將優(yōu)化后的抽象語法樹轉(zhuǎn)換成可執(zhí)行的代碼。

Nuxt.js是做什么的

Nuxt.js是一個實(shí)現(xiàn)服務(wù)端渲染的框架

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

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

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