vue render函式解析

2022-06-12 17:09:12 字數 1479 閱讀 7950

寫一些vue.js的template太繁瑣,利用render,可以使用js來生成模板,更加靈活和簡便。

官網也說了。在深入渲染函式之前推薦閱讀例項屬性 api因為寫很多render的函式裡面需要呼叫其實例屬性的api.

實現效果:

目標:點選1的時候使用,下方內容使用h1標題,點選hi 的時候,使用hi的標題.

其父元件很好寫:23

456內容大小:

}balabala...balabala...balabala...balabala...balabala...

balabala...balabala...balabala...balabala...balabala...

balabala...balabala...balabala...balabala...balabala...

balabala...balabala...balabala...balabala...balabala...

balabala...balabala...balabala...balabala...balabala...

balabala...balabala...balabala...balabala...balabala...

子元件不使用render的時候,是這樣: 很複雜,多個slot。

使用render後,是這樣:只需要乙個函式就行。可以看到這個檔案裡面沒有template,使用render生成的template。

render方法會傳入乙個createelement函式

這個函式呢。其返回乙個"虛擬dom",其引數有三個:

tag    型別:string/object/function  說明:乙個html標籤,元件型別,或乙個函式

data    型別:object 說明:乙個對應屬性的資料物件,用於向建立的節點物件設定屬性值

children  型別:string/array       說明:子節點

createelement這個方法在vue2的習慣性使用中經常用h來命名

render: function (createelement)
作用呢?

可以參看第一種寫法:

new vue(

})第二種寫法:

new vue()

再補充一點的是:在業務中,生產效率是第一位,所以絕大部分業務**都應當用 template 來完成。 你不用在意效能問題 , 如果使用了 webpack 做編譯 , template 都會被預編譯為 render 函式。####

vue render 函式理解

感覺render是為補救template缺點而誕生的 vue通過建立乙個虛擬dom對真實dom發生的變化保持追蹤。return createelement h1 hello world createelement 到底會返回什麼呢?其實不是乙個實際的 dom 元素。它更準確的名字是createnod...

Vue render 函式中使用this

1.在render中直接使用this,on裡面click函式不是箭頭函式 使用this需要在父級將this儲存起來才能使用 render h,params params let this this return h div style on this.previewurl row.picture t...

vue render函式 函式元件化

之前建立的錨點標題元件是比較簡單,沒有管理或者監聽任何傳遞給他的狀態,也沒有生命週期方法,它只是乙個接受引數的函式 在這個例子中,我們標記元件為functional,這意味它是無狀態 沒有data 無例項 沒有this上下文 乙個函式化元件就像這樣 vue.component my componen...