¿Hay alguna forma de usar el contenido de la ranura dentro de la etiqueta del script? algo como esto:
<CustomComponent>I want to use this text inside the script tag of the custom component</CustomComponent>
y dentro del componente personalizado:
<script>console.log(ThatOneString)</script><slot/>
No hay una manera fácil, en teoría una ranura puede contener 'lo que sea', cadenas, html, otros componentes, ... y la actitud más común es "Aquí hay lugar para algo, en realidad no me importa lo que pongas aquí". .
Esto significa que la única forma de acceder a esto de alguna manera es usar un elemento de ajuste: ```html
```y luego use el buen javascript antiguo
let wrapper $: content = wrapper?.innerHTML $: console.log(content) (la parte ?. se debe a que el envoltorio no estará definido inicialmente)
Pero esto no funcionará con contenido dinámico, si desea registrar esto cada vez que cambie el contenido, tendrá que comenzar a jugar con un MutationObserver para rastrear la ranura.
import { onMount } from 'svelte' let content let wrapper $: console.log(content) onMount(() => { const obs = new MutationObserver(() => content = wrapper.innerHTML) obs.observe(wrapper, { characterData: true, subtree: true }) return () => obs.disconnect() })momento en el que comenzaría a preguntarme si usar tragamonedas era el enfoque correcto :)