vue的runtime版本和帶有compiler的版本

vue-comp.png

組件渲染到頁面的過程

template --> ast --> render --> vDom --> 真實(shí)的Dom --> 頁面
ast:抽象語法樹
vDom:虛擬Dom
template最終還是會(huì)被渲染為 render函數(shù)

Runtime Only (只包含運(yùn)行時(shí)的版本)

1、指定render函數(shù),如上圖
2、通常借助webpack的vue-loader工具,在構(gòu)建時(shí)進(jìn)行了預(yù)編譯(將.vue文件編譯為js)。所以該版本只包含運(yùn)行時(shí)的 Vue.js 代碼
3、webpack打包時(shí)已經(jīng)將template編譯為render函數(shù)(template 會(huì)通過 vue-template-compiler 轉(zhuǎn)換為 render 函數(shù)),不需要在客戶端進(jìn)行編譯

runtime-compiler(包含編譯器和運(yùn)行時(shí)的版本)

  • 編譯器:用來將模板字符串編譯成為 JavaScript 渲染函數(shù)的代碼。
    1、有指定template字符串,如上圖,或者掛載到一個(gè)元素上并以其 DOM 內(nèi)部的 HTML 作為模板
    2、如果沒有對(duì)代碼做預(yù)編譯,但又使用了 Vue 的 template 屬性并傳入一個(gè)字符串,需要在客戶端編譯模板
    3、打包時(shí)不進(jìn)行編譯,在運(yùn)行的時(shí)候,才去編譯 template
    4、體積較大,
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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