# 渲染函数 API
注意
- h 现在全局导入,而不是作为参数传递给渲染函数
- 渲染函数参数在有状态组件和函数组件之间变得更加一致
- vnode 的 prop 结构扁平化
# 2.x 语法
render 函数会自动接收 h 函数(它是 createElement 的别名)作为参数:
export default {
render(h) {
return h('div', {
class: ['button', 'is-outlined'],
style: { color: '#34495E' },
attrs: { id: 'incrementButton' },
domProps: { innerHTML: '' },
on: { click: increment },
key: 'increment-button',
})
},
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 3.x 语法
render 函数不再接收任何参数,h 现在是全局导入的,而不是作为参数自动传递。
import { h, reactive } from 'vue'
export default {
setup() {
const state = reactive({
count: 0,
})
function increment() {
state.count++
}
// 返回render函数
return () =>
h(
'div',
{
class: ['button', 'is-outlined'],
style: { color: '#34495E' },
id: 'incrementButton',
// innerHTML: '',
onClick: increment,
key: 'increment-button',
},
state.count
)
},
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28