vue main.js 中 render: h => h(App) 具體含義解釋

原文連接:vue

  1. https://github.com/ly525/blog/issues/90
  2. https://segmentfault.com/q/1010000007130348?_ea=3899677

請解釋:render: h => h(App) 這段話的意思?webpack

# main.js
new Vue({
    el: '#app',
    router: router,
    store: store,
    render: h => h(App)
})

爲了方便仍然有疑惑的人,貼一個連接, 其中 @bjunc 的解答能夠做爲該題的完美回答;git

大概的翻譯下: render: h => h(App) 是下面內容的縮寫:github

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

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

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

再進一步縮寫爲:segmentfault

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

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

render: h => h(App);

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

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".dom

它來自單詞 hyperscript,這個單詞一般用在 virtual-dom 的實現中。Hyperscript 自己是指 生成HTML 結構的 script 腳本,由於 HTML 是 hyper-text markup language 的縮寫(超文本標記語言)函數

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

相關文章
相關標籤/搜索