仿寫下Vue3中的渲染器(簡易版)
首先,我們要清楚渲染器是干嘛的?模板經過編譯生成渲染函數(shù),而渲染函數(shù)的返回值就是虛擬Dom也就是描述真實Dom的js對象,而我們的渲染器要做的就是把虛擬Dom遞歸遍歷按照原生Api完成對Dom的創(chuàng)建,也就是真實Dom的生成,也是最終頁面的產生
目前先考慮兩種情況,一種是直接掛載Dom元素,而另一種則是掛載組件
讓我們先來試驗著寫一下掛載Dom元素的渲染器
文本節(jié)點的掛載

還有孩子掛載

接著來試驗著寫一下掛載組件
組件的實質就是一組對虛擬Dom元素的封裝
如果我們將組件看成函數(shù)的話,那它的返回值不就是它所對應的虛擬Dom嘛
這么一看的話,好像兩者有聯(lián)系了,開始解耦,建立獨立函數(shù)myRender
完善下
標簽: