關於Vue中的 render: h => h(App) 具體是什麼含義?

render: h => h(App) 是下面內容的縮寫:javascript

render: function (createElement) { return createElement(App); }

進一步縮寫爲(ES6 語法):java

render (createElement) {
    return createElement(App); }

再進一步縮寫爲:app

render (h){
    return h(App); }

按照 ES6 箭頭函數的寫法,就獲得了:dom

render: h => h(App);

其中 根據 Vue.js 做者 Even You 的回覆,h 的含義以下:函數

It comes from the term "hyperscript", which is commonly used in many virtual-dom implementations. "Hyperscript" itself stands for "script that generates HTML structures" because HTML is the acronym for "hyper-text markup language".
它來自單詞 hyperscript,這個單詞一般用在 virtual-dom 的實現中。Hyperscript 自己是指 
生成HTML 結構的 script 腳本,由於 HTML 是 hyper-text markup language 的縮寫(超文本標記語言)spa


理解:createElement 函數是用來生成 HTML DOM 元素的,也就是上文中的 generate HTML structures,也就是 Hyperscript,這樣做者才把 createElement 簡寫成 h。code

 Vue.js 裏面的 createElement 函數,這個函數的做用就是生成一個 VNode節點,render 函數獲得這個 VNode 節點以後,返回給 Vue.js 的 mount 函數,渲染成真實 DOM 節點,並掛載到根節點上。component

還有另一種寫法效果是同樣的:ip

import App from './App' new Vue({ el: '#root', template: '<App></App>', components: { App } })
相關文章
相關標籤/搜索