赞
踩
JSX
<div className="container">
<p onClick={onClick} data-name="p1">
hello <b>{name}</b>
</p>
<img src={imgSrc}/>
<MyComponent title={title}></MyComponent>
</div>
Vue 模板
<div class="container">
<p @click="onClick" data-name="p1">
hello <b>{{name}}</b>
</p>
<img :src="imgSrc"/>
<my-component :title="title"></my-component>
</div>
render 函数
技术要点:
props: {
className: 'container'
},
dataset: {
name: 'p1'
},
on: {
click: onClick // 变量
}
[name]
h(MyComponent, { // MyComponent 变量
title: title // 变量
}, [ /* 无子节点*/ ])
function render() {
return h('div', {
props: {
className: 'container'
},
}, [
// <p>
h('p', {
dataset: {
name: 'p1'
},
on: {
click: onClick // 变量
}
}, [
'hello ',
h('b', {}, [name]) // name 变量
])
// <img>
h('img', {
props: {
src: imgSrc // 变量
}
}, [ /* 无子节点*/ ])
// <MyComponent>
h(MyComponent, { // MyComponent 变量
title: title // 变量
}, [ /* 无子节点*/ ])
])
}
VNode
技术要点:
className: 'container'
dataset: {
name: 'p1'
},
on: {
click: onClick // 变量
}
'hello ',
props: {},
{
tag: MyComponent, // 变量
props: {
title: title // 变量
},
children: [ /* 无子节点*/ ]
}
const vnode = {
tag: 'div',
props: {
className: 'container'
},
children: [
// <p>
{
tag: 'p',
props: {
dataset: {
name: 'p1'
},
on: {
click: onClick // 变量
}
},
children: [
'hello ',
{
tag: 'b',
props: {},
children: [name] // name 变量
}
]
},
// <img>
{
tag: 'img',
props: {
src: imgSrc // 变量
},
children: [ /* 无子节点*/ ]
},
// <MyComponent>
{
tag: MyComponent, // 变量
props: {
title: title // 变量
},
children: [ /* 无子节点*/ ]
}
]
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。