將 h 做爲 createElement 的別名是 Vue 生態系統中的一個通用慣例,實際上也是 JSX 所要求的,若是在做用域中 h 失去做用,在應用中會觸發報錯。javascript
背景
在學習Vue.js時,使用vue-cli建立了一個Vue項目,main.js文件中有一行代碼不知道是什麼意思。在網上搜索了下,獲得了答案,在此記錄下。html
main.js 文件內容vue
import Vue from 'vue' import App from './App.vue' new Vue({ el: '#app', render: h => h(App) })
h => h(App)這是什麼,徹底看不懂啊!!!So Googlejava
解惑釋疑vue-cli
{ render: h => h(App); }
等價於app
{ render: h => { return h(App); } }
等價於ide
{ render: function(h) { return h(App); } }
即:學習
{ render: function(createElement) { return createElement(App); } }
看了 createElement 的官方文檔,其實我仍是不明白 createElement 的用法的。createElement 方法的參數有幾個?各個參數的含義、類型是什麼?code
示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="app"></div> <script type="text/javascript" src="https://unpkg.com/vue"></script> <script type="text/javascript"> var app = new Vue({ el: '#app', // 提供一個在頁面上已經存在的 DOM 元素做爲 Vue 實例掛載目標 render: function (createElement) { return createElement('h2', 'Hello Vue!'); } }); </script> </body> </html>