需求
在Vue中渲染組件的時候,不單單可以使用components來注冊組件,還可以使用一個render方法來返回一個組件的html結構。
下面來看看不同的區別。
官網介紹:ttps://cn.vuejs.org/v2/guide/render-function.html
使用components渲染組件
先來使用components來渲染組件,代碼如下:
image-20200311232618789
Title
app區域:渲染組件內容
全免费A级毛片免费看无码,亚洲色大成网站WWW久久九九,永久三级网站在线观看,95Pao国产成视频免费
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<文本链>
<文本链>
<文本链>
<文本链>
<文本链>
<文本链>
復制
注意:從上面的代碼來看,如果使用 components 來渲染組件,那么app內設置的其他內容是照樣可以顯示的。
使用render函數來渲染組件
除開上面的 components 方法,還可以使用 render 函數來渲染組件,如下:
1.使用render渲染組件
image-20200311233316497
從上圖可以看到,如果使用render方法來渲染組件,那么render方法將會將app的內容全部組件為渲染的組件,完全覆蓋。
也就是說,當使用render方法渲染的時候,不管app內容寫了什么,都會被組件覆蓋。
而且,從上面看到,使用render方法的時候,并不需要寫在 app 中設置組件區域。
代碼如下:
Title
app區域:渲染組件內容
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<蜘蛛词>|
<文本链>
<文本链>
<文本链>
<文本链>
<文本链>
<文本链>
復制2.簡化render函數的寫法
render函數的基本寫法:
render: function(createElements) {
// createElements 是一個 方法,調用它,能夠把 指定的 組件模板,渲染為 html 結構
var html = createElements(login)
return html
// 注意:這里 return 的結果,會 替換頁面中 el 指定的那個 容器
}
復制
我們先來去掉 html 這個中間變量,直接返回創建的 html 內容,如下:
render: function(createElements) {
return createElements(login)
}
復制
然后,再將function方法可以改為箭頭函數,如下:
render: (createElements) => createElements(login)
復制
當箭頭函數只有一個形參的時候,可以去掉括號。另外,當 return 在箭頭函數右側只有一行,沒有花括號{}的時候,可以省略。
并且可以將createElements形參簡寫為c,可以可以簡化如下:
render: c => c(login)
復制
效果如下: