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ù)端渲染的框架