首先需要了解这是 es 6 的语法,表示 Vue 实例选项对象的 render 方法作为一个函数,接受传入的参数 h 函数,返回 h(App) 的函数调用结果;
其次,Vue 在创建 Vue 实例时,通过调用 render 方法来渲染实例的 DOM 树;
最后,Vue 在调用 render 方法时,会传入一个 createElement 函数作为参数,也就是这里的 h 的实参是 createElement 函数,然后 createElement 会以 APP 为参数进行调用,关于 createElement 函数的参数说明参见:Element-Arguments。
// The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from ‘vue‘ import App from ‘./App‘ import router from ‘./router‘ import ElementUI from ‘element-ui‘ import ‘element-ui/lib/theme-chalk/index.css‘ import ‘@/assets/iconfont.css‘ import ‘@/assets/styles/main.scss‘ Vue.config.productionTip = false Vue.use(ElementUI) /* eslint-disable no-new */ new Vue({ el: ‘#app‘, router, // template: ‘<App/>‘, // components: {App} render:h => h(App) })
render
函数是渲染一个视图,然后提供给el
挂载,如果你没有加那么就等于没有视图给el
挂载,自然什么都没有了。
//另外 { render: h => h(App) } //等价于 { render: h => { return h(App) } } //其实只是简写的方式。 //如果不涉及使用this的话下面这个也是等价的 { render: function (h) { return h(App) } }
render 是vue里面实现渲染dom的函数,这句的目的是渲染这个app实例。用App这个模板。
const app=new Vue({ el:‘#app‘, router, compoments:{ App }, template:"<App/>" });