Cómo acceder a un parámetro de URL en Sapper fuera del módulo de script

Suponga que está creando una aplicación Svelte usando Sapper y tiene una ruta de página dinámica, por ejemplo/routes/[id].svelte.

Desea obtener la parte dinámica de la URL (laiden este caso), y sabes que puedes conseguirlo en elpreload()función en el<script context="module">parte del componente:

<script context="module">
	export async function preload({ params }) {
		const { id } = params
	}
</script>

Pero el problema es que debes usarlo fuera depreload(), para realizar otra cosa.

La forma de hacerlo es devolverlo depreload, y definirlo como un accesorio del componente, utilizando el habitualexport *sintaxis.

He aquí un ejemplo:

<script context="module">
	export async function preload({ params }) {
		const { id } = params
		return { id }
	}
</script>

<script> export let id

if (typeof window !== ‘undefined’) { alert(id) } </script>

Descarga mi gratisManual Svelte


Tutoriales más esbeltos: