Vue3中如何实现a.vue中4个element plus button,选择哪一个哪一个就高亮,且只能有一个按钮高亮,失去焦点不影响高亮
时间: 2023-06-15 16:06:24 浏览: 181
可以使用Vue3中提供的v-model指令来实现该功能。具体实现步骤如下:
1. 在a.vue中定义一个变量selectedButton,用来保存当前选中的按钮的id。
2. 在template中使用v-for指令遍历4个按钮,为每个按钮绑定一个id,并使用v-bind指令动态绑定class属性,判断当前按钮是否被选中,如果选中则添加高亮样式。
3. 使用v-model指令将selectedButton变量与每个按钮的选中状态进行双向绑定。
代码示例:
```html
<template>
<div>
<el-button v-for="button in buttons"
:key="button.id"
:id="button.id"
v-bind:class="{ 'is-active': selectedButton === button.id }"
v-model="button.selected">
{{ button.text }}
</el-button>
</div>
</template>
<script>
export default {
data() {
return {
selectedButton: '', // 保存当前选中按钮的id
buttons: [ // 定义4个按钮
{ id: 'button1', text: 'Button 1', selected: false },
{ id: 'button2', text: 'Button 2', selected: false },
{ id: 'button3', text: 'Button 3', selected: false },
{ id: 'button4', text: 'Button 4', selected: false }
]
}
}
}
</script>
<style>
.is-active {
background-color: #409EFF; // 高亮样式
color: #fff;
}
</style>
```
这样,当用户点击某个按钮时,该按钮会被高亮显示,并且selectedButton变量会被更新为该按钮的id。同时,其他按钮的选中状态也会被更新为false,保证只有一个按钮被选中。
阅读全文