Vue实现多个标签点击其中一个标签动态更换当前标签的背景颜色
时间: 2024-01-12 15:04:10 浏览: 104
要实现在 Vue 中多个标签点击其中一个标签动态更换当前标签的背景颜色,可以使用以下步骤:
1. 在 data 中定义一个属性,用于存储当前被选中的标签的索引值。
2. 在标签上使用 v-for 循环渲染多个标签,并使用 v-bind 绑定样式属性和点击事件。
3. 在点击事件处理函数中,将当前被选中的标签的索引值更新为当前点击标签的索引值。
4. 在标签上使用 v-bind 绑定样式属性,根据当前标签的索引值来判断是否需要更换背景颜色。
下面是一个简单的示例代码:
```html
<template>
<div>
<div
v-for="(tag, index) in tags"
:key="index"
:style="{ backgroundColor: currentIndex === index ? 'red' : 'white' }"
@click="changeColor(index)"
>
{{ tag }}
</div>
</div>
</template>
<script>
export default {
data() {
return {
tags: ['标签1', '标签2', '标签3', '标签4'],
currentIndex: -1
}
},
methods: {
changeColor(index) {
this.currentIndex = index;
}
}
}
</script>
```
在上面的代码中,我们首先在 data 中定义了一个属性 currentIndex,用于存储当前被选中的标签的索引值。然后,我们使用 v-for 循环渲染了多个标签,并使用 v-bind 绑定了样式属性和点击事件。在点击事件处理函数 changeColor 中,我们将当前被选中的标签的索引值更新为当前点击标签的索引值。在标签上使用了 v-bind 绑定了样式属性,其值根据 currentIndex 的值来判断是否需要更换背景颜色。
阅读全文