Vue2.0 render: h => h(App)的解释

render: h => h(App)是ES6的写法,其实就是如下内容的简写:

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

官方文档中是这样的,createElement 是 Vue.js 里面的 函数,这个函数的作用就是生成一个 VNode节点,render 函数得到这个 VNode 节点之后,返回给 Vue.js 的 mount 函数,渲染成真实 DOM 节点,并挂载到根节点上。

render: function (createElement) {
    return createElement(
      ‘h‘ + this.level,   // tag name 标签名称
      this.$slots.default // 子组件中的阵列
    )
  }

然后ES6写法,

render: createElement => createElement(App)

然后用h代替createElement,使用箭头函数来写:

render: h => h(App)

好,现在来解释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 的缩写(超文本标记语言)

也就是说,createElement 函数是用来生成 HTML DOM 元素的,而上文中的 Hyperscript也是用来创建HTML结构的脚本,这样作者才把 createElement 简写成 h。

而 createElement(也就是h)是vuejs里的一个函数。这个函数的作用就是生成一个 VNode节点,render 函数得到这个 VNode 节点之后,返回给 Vue.js 的 mount 函数,渲染成真实 DOM 节点,并挂载到根节点上。

其实在vue 1.0 中,这样的写法也就是如下的含义:

new Vue({
  el: ‘#app‘,
  template:‘</App>‘
  componets: {App}
})

然后页面中使用

<div id=‘app‘>
  <app></app>
</div>

参考链接:https://segmentfault.com/q/1010000007130348

原文地址:https://www.cnblogs.com/gopark/p/11445679.html

时间: 2024-08-29 17:50:03

Vue2.0 render: h => h(App)的解释的相关文章

Vue2.0 render:h =&gt; h(App)

首先需要了解这是 es 6 的语法,表示 Vue 实例选项对象的 render 方法作为一个函数,接受传入的参数 h 函数,返回 h(App) 的函数调用结果: 其次,Vue 在创建 Vue 实例时,通过调用 render 方法来渲染实例的 DOM 树: 最后,Vue 在调用 render 方法时,会传入一个 createElement 函数作为参数,也就是这里的 h 的实参是 createElement 函数,然后 createElement 会以 APP 为参数进行调用,关于 createE

基于vue2.0的在线电影APP,

基于vue2.0构建的在线电影网[film],webpack + vue + vuex + vue-loader + keepAlive + muse-ui + cordova 全家桶,cordova 打包成APP 从零开始搭建,适合新手练手参考.GitHub地址,api来源于网上,仅供开发参考之用,禁用于商业,否则后果自负. 在线demo apk安装包后续再放出吧 O(∩_∩)O 屏幕截图,该项目使用了响应式布局,适配全分辨率的屏幕 移动端效果 启用侧边栏模式 PC端效果 主要特色: 组件化开

Vue2.0 新手完全填坑攻略——从环境搭建到发布

本文作者 Jinkey(微信公众号 jinkey-love,官网 https://jinkey.ai) 原文链接 https://jinkey.ai/post/tech/vue2.0-xin-shou-wan-quan-tian-keng-gong-lue-cong-huan-jing-da-jian-dao-fa-bu 文章允许非篡改署名转载,删除或修改本段版权信息转载的,视为侵犯知识产权,我们保留追求您法律责任的权利,特此声明! 感谢 showonne.yubang 技术指导 Demo 地址

vue-cli: render:h =&gt; h(App)是什么意思

import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false new Vue({ render: h => h(App), //生成template(APP) }).$mount('#app') //作用域是'#app' 1.render方法的实质就是生成template模板(在#app的作用域里) 2.render是vue2.x新增的一个函数, 这个函数的形参是h 3.vue调用render

render:h =&gt; h(App) 是什么意思?

在学习vue.js时,使用vue-cli创建了一个vue项目,main.js文件中有一行代码不知道什么意思.在网上搜索得到如下解答: 参考一:https://www.cnblogs.com/longying2008/p/6408753.html 参考二:https://www.cnblogs.com/whkl-m/p/6970859.html main.js文件内容 import Vue from 'vue' import App from './App' Vue.config.producti

关于Vue中的 render: h =&gt; h(App) 具体是什么含义?

render: h => h(App) 是下面内容的缩写: render: function (createElement) { return createElement(App); } 进一步缩写为(ES6 语法): render (createElement) { return createElement(App); } 再进一步缩写为: render (h){ return h(App); } 按照 ES6 箭头函数的写法,就得到了: render: h => h(App); 其中 根据

基于vue2.0的一个豆瓣电影App

1.搭建项目框架 使用vue-cli 没安装的需要先安装 npm intall -g vue-cli 使用vue-cli生成项目框架 vue init webpack-simple vue-movie 然后一路回车 接着 进入项目目录 cd vue-movie 然后安装项目依赖包 cnpm install 没安装cnpm的先执行这个命令 npm install -g cnpm --registry=https://registry.npm.taobao.org 接着 npm run dev 看到

h =&gt; h(App)解析

在创建Vue实例时经常看见render: h => h(App)的语句,现做出如下解析: h即为createElement,将h作为createElement的别名是Vue生态系统的通用管理,也是JSX所要求的 h => h(App)是es6语法,即为: function(h){return h(App)}

Vue2.0 全家桶开发的网页应用(参照吾记APP)

github链接 借鉴吾记APP,使用 vue2.0+vue-router+vuex 为主要技术栈,elementui做为ui框架,多模块 spa 模式,webpack2.0 负责模块打包,gulp 负责处理静态资源打包.压缩,欢迎打赏star!!! 安利一下 吾记前端构建流程 本地环境准备 安装node: * https://nodejs.org/en/download/ ("node": ">=6.0",对应需要升级node-sass,不然使用不了!) 配