1此迅、判斷是否有render函數(shù),如果有锭硼,直接將render函數(shù)返回結(jié)果作為虛擬節(jié)點(diǎn)樹房资;如果沒有,看有沒有template配置
2檀头、如果有template配置轰异,將template作為模板 編譯為render函數(shù);如果沒有則看el配置的outerHTML作為模板
render函數(shù):
a暑始、render 函數(shù)的參數(shù)(createElement)
createElement 是 render 函數(shù) 的參數(shù)搭独,它本身也是個(gè)函數(shù),并且有三個(gè)參數(shù)蒋荚。
b戳稽、createElement 函數(shù)的參數(shù)(三個(gè))
(1)一個(gè) HTML 標(biāo)簽字符串,組件選項(xiàng)對象期升,或者解析上述任何一種的一個(gè) async 異步函數(shù)惊奇。類型:{String | Object | Function}。必需播赁。
(2)一個(gè)包含模板相關(guān)屬性的數(shù)據(jù)對象你可以在 template 中使用這些特性颂郎。類型:{Object}∪菸可選乓序。
(3)子虛擬節(jié)點(diǎn) (VNodes),由 createElement() 構(gòu)建而成坎背,也可以使用字符串來生成“文本虛擬節(jié)點(diǎn)”替劈。類型:{String | Array}〉寐耍可選陨献。
例子:
var vm= new Vue({
el:"#app",
data:{
author:“web小王子”
}
render(h){
h("h1",[h("h1",
{
? ? ? props: {
? ? ? ? someProp: 'foobar'? ? ? }
? ? },
`第1個(gè)vue應(yīng)用懂更,作者${this.author}`)])
}
})