Suppose you’re building a Svelte application using Sapper, and you have a dynamic page route, for example /routes/[id].svelte.

You want to get the dynamic part of the URL (the id in this case), and you know you can get it in the preload() function in the <script context="module"> part of the component:

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

But the problem is that you need to use it outside of preload(), to perform something else.

The way to do so is to return it from preload, and define it as a prop of the component, using the usual export * syntax.

Here’s an example:

<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>

Download my free Svelte Handbook, and check out my premium Svelte Course


Coming soon:
Click to find out more โคด๏ธ