h
函数
h(tag[, props, children, className, key, ref])
函数的作用是创建虚拟DOM,它的参数说明如下:
tag
{String | Function}
虚拟DOM的类型,可以是字符串定义的html标签,也可是是组件的构造函数props
{Object}
虚拟dom的属性children
{String | Number | vNode | Array<String | Number | vNode>}
定义虚拟DOM的子元素className
定义DOM的class
属性,因为使用频率非常高,单独拿出来处理,提高效率key
虚拟DOM的key
属性,用于区分每一个子元素ref
虚拟DOM的ref
属性,用于引用元素或组件实例
对于组件,
children
和className
将作为props
属性的一部分,而对于html元素,它们会在编译时单独处理。
例如:
h('div', null, 'test', 'content')
=>
<div class="content">test</div>
h('div', {id: 'test'}, [100, h('span')])
=>
<div id="test">100<span></span><div>
// 假设Component组件的template为 <div>{self.get('chilren')}</div>
h(Component, {children: h('span')})
=>
<div><span></span></div>