value-key 的值必须是对象中一个唯一的标识,类似于:key的意义,但是可以不跟Key一样,一般用一样的即可
因为选择的是一个对象,回显时也应该是一个对象,对象中至少有id,用于与value-key进行匹配
完整示例
<template>
<div class="m-4">
<!--
value-key 的值必须是对象中一个唯一的标识,类似于:key的意义,但是可以不跟Key一样,一般用一样的即可。
:value="item" 切换事件拿到的就是item对象
-->
<el-select v-model="value" value-key="id" placeholder="请选择月份" style="width: 240px" @change="handleChangeMonth">
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item" />
</el-select>
<p>
月份:
{{ value ? value.label : '未选择月份' }}
</p>
</div>
</template>
<script setup>
import { ref } from 'vue';
//因为选择的是一个对象,回显时也应该是一个对象,对象中至少有id,用于与value-key进行匹配
const value = ref({ id: 3, label: '3月' });
const options = ref([
{ id: 1, label: '1月' },
{ id: 2, label: '2月' },
{ id: 3, label: '3月' },
{ id: 4, label: '4月' },
{ id: 5, label: '5月' },
{ id: 6, label: '6月' },
{ id: 7, label: '7月' },
]);
// 切换月份事件-拿到选中的整个对象
const handleChangeMonth = (val) => {
console.log(val); // {id: 4, label: '4月'}
};
</script>