Access a URL parameter outside Sapper script module
By Flavio Copes
Learn how to access a URL parameter in Sapper outside the preload function by returning it from preload and exposing it as a prop with export let.
~~~
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>~~~
Related posts about svelte: