render: (h) => {
// 方案1:
return h('el-switch', {
props: {
value: true
},
on: {
change: (e) => {
console.log(e, '改变')
}
}
})
// 方案二:
const onChange = (e) => {
console.log(e, '改变')
}
return (
<el-switch value={true} onChange={onChange}>
</el-switch>
)
由于 render 函数中没有 v-bind、v-on 等内置指令,因此我们将如何使用呢?
render () {
const props = {
...this.$attrs,
...this.$props,
}
const on = {
this.$listeners,
}
return (
<a-table
{...{ props, scopedSlots: { ...this.$scopedSlots } }}
{...{ on }}
>
Object.keys(this.slots).map(name => (<template slot={name}>{this.$slots[name]}</template>))
</a-table>
)
}
$scopedSlots
用来访问作用域插槽。对于包括 默认 slot 在内的每一个插槽,该对象都包含一个返回相应 VNode 的函数。vm.$scopedSlots 在使用渲染函数开发一个组件时特别有用。
render () {
return (
<a-table
onChange={this.loadData}
{...{ scopedSlots: ...this.$scopedSlots }}
/>
)
}