Vue學習(二十四)render函數


render函數

Vue2與Vue1最大的區別是Vue2使用虛擬節點更新DOM,提示渲染性能。

Vue中的虛擬節點是一個js對象

render函數的作用

render函數通過createElement參數創建virtualDom,從而簡化組件的寫法。適用於組件中有大量代碼是重復的場景,使用Render函數在其中通過書寫js方法生成virtualDom。

render 函數 跟 template 一樣都是創建 html 模板的,但是有些場景中用 template 實現起來代碼冗長繁瑣而且有大量重復,這時候就可以用 render 函數。

render方法的實質就是生成template模板;

  • 通過調用一個方法(h)來生成,而這個方法(h)是通過render方法的參數傳遞給它的;

  • 這個方法有三個參數,分別提供標簽名,標簽相關屬性,標簽內部的html內容

  • 通過這三個參數,可以生成一個完整的模板

h函數/createElement

因為vue是虛擬DOM,所以在拿到template模板時也要轉譯成VNode的函數,而用render函數構建DOM,vue就免去了轉譯的過程。當使用render函數描述虛擬DOM時,vue提供一個函數,這個函數是就構建虛擬DOM所需要的工具。官網上給他起了個名字叫createElement。還有約定的簡寫叫h。

參數

createElement有三個參數,第一個參數為html標簽或者組件或者函數,這個參數是必選參數。第二個參數可選,對應屬性中的數據對象。第三個參數也是可選參數,對應子節點,子節點也是用createElement方法構建。

第二個參數的可以定義屬性類型

Render的寫法比較復雜且可讀性差,一般都用template來實現,只有特殊的場景才使用Render函數。

在組件樹中,VNode如果是組件或者含有組件的slot,那么VNode必須唯一。

參考

vue官網:渲染函數&JSX

iview官網:表格Render寫法

 


免責聲明!

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



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