博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
render: h => h(App) $mount 什么意思
阅读量:5850 次
发布时间:2019-06-19

本文共 1355 字,大约阅读时间需要 4 分钟。

初始一个vue.js项目时,常常发现main.js里有如下代码:

new Vue({  render: h => h(App)}).$mount('#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);

其中 根据 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 的缩写(超文本标记语言)

在这里推荐大家看官方文档:

将 h 作为 createElement 的别名是 Vue 生态系统中的一个通用惯例,实际上也是 JSX 所要求的,如果在作用域中 h 失去作用,在应用中会触发报错。

虚拟DOM / VNode

createElement 到底会返回什么呢?其实不是一个实际的 DOM 元素。createElement更准确的名字可能是 createNodeDescription,因为它所包含的信息会告诉 Vue 页面上需要渲染什么样的节点,及其子节点。我们把这样的节点描述为“虚拟节点 (Virtual Node)”,也常简写它为“VNode”。“虚拟 DOM”是我们对由 Vue 组件树建立起来的整个 VNode 树的称呼。

总体来说,我带着揣测认为,Vue 在调用 render 方法时,会传入一个 createElement 函数作为参数,也就是这里的 h 的实参是 createElement 函数,这个函数的作用就是生成一个 VNode节点,render 函数得到这个 VNode 节点之后,调用了 mount 方法,渲染成真实 DOM 节点,并挂载到(通常是div app)??节点上。

所以有时候你可以这么写...mount在root上了,一般都是在app上

mount在root上

我粗略的看了一下,这里其实牵扯到了一堆,比如:

其实vue有两种渲染方法,一种是通过模板<template>
一种是render function

没搞懂..有空再填坑..

参考:

1.
2.

转载地址:http://fbdjx.baihongyu.com/

你可能感兴趣的文章
你应该知道的 RPC 原理
查看>>
Ubuntu安装词典
查看>>
Spring解析
查看>>
python中str和repr区别
查看>>
RedHat6 管理应用服务【11】
查看>>
stm32F10x复习-1
查看>>
Linux命令操作大全
查看>>
从周五开始香港主机特别慢,香港主机用户有同感吗?
查看>>
Ember.js 3.9.0-beta.3 发布,JavaScript Web 应用开发框架
查看>>
python标准库00 学习准备
查看>>
4.2. PHP crypt()
查看>>
commonservice-config配置服务搭建
查看>>
连接池的意义及阿里Druid
查看>>
ComponentOne 2019V1火热来袭!全面支持 Visual Studio 2019——亮点之WinForm篇
查看>>
Python递归函数与匿名函数
查看>>
loadrunner安装运行一步一步来(多图)
查看>>
git请求报错 401
查看>>
监控工具htop的安装及使用
查看>>
Nodejs使用图灵机器人获取笑话
查看>>
Spring 任务调度 简单的,使用Schedule
查看>>