Есть массив элементов, которые рендерятся с помощью v-for. Необходимо отрендерить только те элементы, которые видны на экране, остальные же должны быть заменены на компонент-пустышку Placeholder (пустой компонент с такой же высотой, как остальные элементы). Есть такая логика, но она работает неправильно, потому что переменная одна и всегда будет true ее последнее значение, и соответственно компонент Placeholder отрендеривается всегда,даже в видимой части. Полагаю, нужно как-то переписать, используя уникальный идентификатор для каждого элемента (index), но не знаю точно как. Заранее благодарю за помощь
<template v-for="(item, index) in section.items">
<li
v-node-intersect="intersectionObserver"
class="feed-list-item"
:key="index"
>
<feed-item v-if="showItems" :item="item" />
<content-placeholder v-else />
</li>
</template>
<script>
const intersectionObserver = ref(null)
const showItems = ref < boolean > (true)
onMounted(() => {
intersectionObserver.value = new IntersectionObserver(handleIntersection)
})
function handleIntersection(entries) {
entries.forEach(entry => {
if (entry.isIntersecting) {
showItems.value = true
}
if (!entry.isIntersecting) {
showItems.value = false
}
})
}
</script>