Для изменения видимости элемента в цикле v-for в Vue3 можно использовать локальное состояние в каждом элементе массива, которое будет указывать на то, нужно ли отображать дополнительные данные.
Примерно так можно это сделать:
```html
<template>
<div>
<div v-for="item in items" :key="item.id">
<div @click="toggleDetails(item.id)">
{{ item.title }}
</div>
<div v-if="item.showDetails">
{{ item.details }}
</div>
</div>
</div>
</template>
<script>
import { ref } from 'vue';
export default {
data() {
return {
items: [
{ id: 1, title: 'Item 1', details: 'Details 1', showDetails: false },
{ id: 2, title: 'Item 2', details: 'Details 2', showDetails: false }
]
};
},
methods: {
toggleDetails(id) {
const item = this.items.find(item => item.id === id);
item.showDetails = !item.showDetails;
}
}
};
</script>
```
В этом примере при клике на элемент массива `items` вызывается метод `toggleDetails`, который изменяет значение `showDetails` для соответствующего элемента. Таким образом, только выбранный элемент будет показывать свои дополнительные данные.
Этот подход позволяет управлять видимостью данных для каждого элемента отдельно в цикле v-for.