[Vue Form] Basic Select component
<template>
<label v-if="label">{{ label }}</label>
<select
class="field"
:value="modelValue"
v-bind="{
...$attrs,
onChange: ($event) => { $emit('update:modelValue', $event.target.value) }
}"
>
<option
v-for="option in options"
:value="option"
:key="option"
:selected="option === modelValue"
>{{ option }}</option>
</select>
</template>
<script>
export default {
props: {
label: {
type: String,
default: ''
},
modelValue: {
type: [String, Number],
default: ''
},
options: {
type: Array,
required: true
}
}
}
</script>
Rewrite in Composeable API
<template>
<label v-if="label">{{ label }}</label>
<select
class="field"
v-model="modelValue"
v-bind="$attrs"
>
<option
v-for="option in options"
:value="option"
:key="option"
>
{{ option }}
</option>
</select>
</template>
<script setup>
import { defineProps, defineModel } from 'vue';
// Define static props
const { label, options } = defineProps({
label: {
type: String,
default: ''
},
options: {
type: Array,
required: true
}
});
// Define modelValue using defineModel for two-way binding
const modelValue = defineModel({
type: [String, Number],
default: ''
});
</script>
Usage from parent component:
<template>
<CustomSelect
v-model="selectedOption"
:options="['Option 1', 'Option 2', 'Option 3']"
label="Choose an option:"
/>
</template>
<script setup>
import { ref } from 'vue';
import CustomSelect from './CustomSelect.vue';
const selectedOption = ref('');
</script>
分类:
Vue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-12-03 [Javascript Performance] Optimisation and deoptimization
2022-12-03 [Javascript Performance] How to benchmark code performance
2022-12-03 [Typescript] 125. Extreme - Object Key Paths
2021-12-03 [AWS] Using EC2 Roles and Instance Profiles in AWS
2019-12-03 [Algorithm] 122. Best Time to Buy and Sell Stock II
2019-12-03 [ARIA] Create an Accessible Tooltip on a Text Input
2019-12-03 [Algorithm] 121. Best Time to Buy and Sell Stock