vue3中h函数写一个Select
时间: 2024-05-10 12:16:34 浏览: 219
好的,以下是一个简单的 Select 组件代码,使用 Vue 3 的 h 函数创建:
```javascript
const Select = {
props: {
options: {
type: Array,
required: true
},
value: {
type: String,
required: true
}
},
render() {
return h('select', {
value: this.value,
onInput: event => this.$emit('input', event.target.value)
}, this.options.map(option => {
return h('option', { value: option.value }, option.label)
}))
}
}
```
这个 Select 组件接受两个 props:options 和 value,其中 options 是一个数组,包含了每个选项的值和标签,value 是当前选中的值。在 render 函数中,我们使用 h 函数创建了一个 select 元素,并将当前选中值绑定到 value 属性上,同时监听输入事件,将选中值通过 $emit 方法派发出去。
接着,我们使用 Array.map 方法遍历 options 数组,为每个选项创建一个 option 元素,并将值和标签传入。最后,我们将所有的 option 元素作为子元素传给 select 元素,以渲染出一个完整的 Select 组件。
阅读全文