How to access a URL parameter in Sapper outside of script module
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 all my books for free
- javascript handbook
- typescript handbook
- css handbook
- node.js handbook
- astro handbook
- html handbook
- next.js pages router handbook
- alpine.js handbook
- htmx handbook
- react handbook
- sql handbook
- git cheat sheet
- laravel handbook
- express handbook
- swift handbook
- go handbook
- php handbook
- python handbook
- cli handbook
- c handbook
subscribe to my newsletter to get them
Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing [email protected]. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.