vue3怎么把v-for里面的值循环到v-show上面并且点击切换,附上完整代码,并且含有script
时间: 2023-08-07 12:14:54 浏览: 144
在 Vue 3 中,可以使用 `v-for` 指令来循环渲染数据,使用 `v-show` 指令来判断元素是否显示,并且可以使用 `@click` 指令来监听元素的点击事件。要将 `v-for` 循环出来的值绑定到 `v-show` 指令上,并且实现点击切换功能,可以使用以下语法:
```
<template>
<div>
<div v-for="(item, index) in items" :key="index">
<div @click="toggleVisible(index)">{{ item.name }}</div>
<div v-show="item.visible">{{ item.content }}</div>
</div>
</div>
</template>
<script>
import { reactive } from 'vue'
export default {
setup() {
const items = reactive([
{ name: 'item1', content: 'content1', visible: false },
{ name: 'item2', content: 'content2', visible: false },
{ name: 'item3', content: 'content3', visible: false },
])
const toggleVisible = (index) => {
items[index].visible = !items[index].visible
}
return {
items,
toggleVisible,
}
},
}
</script>
```
在上面的例子中,我们使用 `reactive` 函数创建了一个响应式的 `items` 数组,并在模板中使用 `v-for` 遍历数组中的每个元素。在每个元素中,我们使用 `@click` 指令来监听元素的点击事件,并调用 `toggleVisible` 函数来切换元素的显示和隐藏。在每个元素的下方,我们使用 `v-show` 指令来判断元素是否显示,根据每个元素的 `visible` 属性来控制元素的显示和隐藏。
注意,在 Vue 3 中,需要使用 `setup` 函数来组织代码,并且不需要再像 Vue 2 中一样使用 `data` 属性来声明数据。同时,需要将事件监听器从 `methods` 中移到 `setup` 函数中。
阅读全文