<script setup>, был полноценным компонентом через ref? В доке написано, что по-умолчанию такие компоненты закрытые и надо использовать defineExpose. Но блин. Теперь через ref невозможно DOM-узел получить, это же тупость невероятная.
Имею ввиду template ref, т.е. <my-component ref="myRef" />
const myRef = ref(null); onMounted(()=>console.log(myRef)); Так не работает?
корневого узла в компонентах больше нет, потому что их может быть несколько из-за фрагментов
в консоль объект Proxy выводит, а в devtools пустой объект. Я могу в самом <script setup> через defineExpose передать объект с любыми полями, но как быть со сторонними компонентами, где код - не мой?
Ну да, мне в идеале их все получить нужно. Но получается, что если автор компонента не сделал нужные параметры публичными, то я ничего не получу. Так ведь не должно быть.. Работа с DOM иногда нужна.
если автор компонента пишет компонент на script setup, то он должен понимать это и предусматривать возможность работы с домом, если он считает ее возможной собственно, если компонент пишется на обычном Composition без script setup, то ничего не меняется - ты так же не имеешь доступа к $el, потому что его больше нет, просто ты можешь ползать по внутренним свойствам компонента через реф, но доступа к дому все еще может не быть
Так ты ж через ref можешь получить доступ к $el
$el во вью 3 больше нет, если в твоем компоненте нет никаких рефов в шаблоне, то доступ ты не получишь
нифига)) если автор не сделал $el публичным, то получишь пустой объект, вообще без свойств. Это не экземпляр компонента будет. Речь про script setup. Если просто Composition API, традиционным script, то да, будет доступ к экземпляру компонента. Но без $el, т.к. несколько корневых элементов может быть. Вот и пытаюсь разобраться, как быть
Обсуждают сегодня