vue-cli/Runtime-Compiler和Runtime-Only的區別


在使用vue init創建腳手架的時候會有如下的選擇:

  Runtime + compiler

  Runtime only

1、區別一

  通過這兩種方法創建的腳手架,區別在於main.js(在src文件夾中)

    在Vue實例中,runtime-compiler創建的項目中參數是:

      components和template

      runtime-only創建的項目中參數為:
      render函數

2、組件的渲染過程

  組件是如何被渲染到頁面中的?
    template ---> ast ---> render ---> vDom ---> 真實的Dom ---> 頁面

  ast:抽象語法樹

  vDom:虛擬DOM

 

3、runtime-only

  ·我們在使用runtime-only的時候,需要借助webpack的loader工具,將.vue文件編譯為javascript,因為是在編譯階段做的,所以他只包含運行時的vue.js代碼,所以代碼體積會更輕量

  ·再將.vue 文件編譯為javascript文件的過程當中會將組件的template模板編譯為render函數,所以我們得到的是render函數的版本

  運行的時候是不帶編譯的,編譯是在離線的時候做的

  ·template會通過vue-template-compiler轉換為render函數

 

4、runtime-compiler

  ·在vue中,最終渲染都是通過render函數,如果寫template屬性,則會編譯為render函數,那么這個編譯過程會在運行時發生,所以需要帶有編譯器的版本

  ·編譯過程會對性能有一定的損耗

 

結論:

  runtime-only:將template在打包的時候,就已經編譯為render函數

  runtime-compiler:在運行的時候才去編譯template

  結果:

      發布生產的時候,runtime-only構建的項目代碼體積更小,運行速度更快

  推薦使用runtime-only函數

 

 

轉自:https://juejin.im/post/5dd6008cf265da47d67c214f


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM