Как сделать чтобы элементы в которых есть :ref="setItemRef" заворачивались внутрь обертки если переменная red = true.
т. е если red = true, то каждый div или span с таким рефом выглядел так:
<div class="YY"
<div class="block" >1111</div>
</div>
Пытался сделать через render функцию
<script setup>
import {h, ref, onBeforeUpdate, onUpdated, onMounted } from 'vue'
const red = ref(true)
const itemRefs = ref([])
const setItemRef = el => {
console.log('************', el.nodeName);
if (el) {
itemRefs.value.push(el)
}
if( el && red.value) {
el = renderI(el);
console.log('дошло', (el.type));
}
};
function renderI(n) {
console.log('aaaaaaaaaaaaaaa');
return h('div', {class: 'YY'}, [h(n.nodeName, n.textContent)]);
};
const renderItx = () => {
return h('div', {class: 'YYX'}, [h('div', '090988fyyf')]);
// return h('div', {class: 'YYX'}, [h(itemRefs.value[0].classname, itemRefs.value[0].innerText)]);
}
</script>
<template>
<h1>Totoro {{red}} </h1>
<button @click="red = !red">Кнопка</button>
<renderItx></renderItx>
<div class="cont">
<div class="block" :ref="setItemRef">1111</div>
<div class="block" :ref="setItemRef">2222</div>
<div class="block" :ref="setItemRef">3333</div>
<span class="block" :ref="setItemRef">444</span>
<span class="block" :ref="setItemRef">555</span>
<span class="block" >7777</span>
<span class="block" >9999</span>
<span class="block" :ref="setItemRef">555</span>
</div>
</template>
<style lang="scss">
.cont{
width: 380px;
margin: 0 auto;
}
.block{
border: 2px solid rgb(10, 185, 54);
padding: 2px;
margin: 5px;
max-width: 100px;
}
button{
background: rgb(134, 255, 63);
border: 3px solid #000;
margin: 4px;
}
</style>