DEV Community

Cover image for Snag the Current URL in SvelteKit (2024 Edition)
Michael Amachree
Michael Amachree

Posted on

Snag the Current URL in SvelteKit (2024 Edition)

Hey Svelte developers! Need to dynamically access the current URL in your SvelteKit apps? Look no further! This guide explores various methods to efficiently grab that URL goodness, keeping things fresh for 2024.

Evolving with SvelteKit: A 2024 Refresh

This article builds upon the valuable insights presented in the previous 2023 version:

ensuring you have the most up-to-date information on URL handling techniques in SvelteKit. As the framework continues to evolve, this refreshed guide empowers you to stay ahead of the curve.

Mastering URL Access in SvelteKit

Whether you're building dynamic dashboards, crafting social media integrations, or simply displaying the current page path, effectively working with URLs is crucial in SvelteKit applications. This article equips you with the essential techniques to tackle these tasks with ease.

The Old Faithful: $page.url

The tried-and-true $page.url store remains a cornerstone for URL access in SvelteKit. It provides access to the current page's URL object, allowing you to extract various components:

  • Pathname: Identify the specific page or section (e.g., /about)


<script>
  import { page } from '$app/stores';
</script>

<p>Current path: {$page.url.pathname}</p>


Enter fullscreen mode Exit fullscreen mode
  • Search Parameters: Dynamically handle query strings (e.g., /products?category=electronics)


<script>
  import { page } from '$app/stores';
</script>

<p>Current category: </p>
{#if $page.url.searchParams.has('category')}
  <p>{$page.url.searchParams.get('category')}</p>
{#else}
  <p>No category specified.</p>
{/if}



Enter fullscreen mode Exit fullscreen mode
  • Full URL String: Access the complete URL for social sharing or external integrations


<script>
  import { page } from '$app/stores';
</script>

<p>Current Full URL: {$page.url.href}</p>


Enter fullscreen mode Exit fullscreen mode

Needing the Route ID: $page.route.id

For complex routing scenarios, SvelteKit provides the $page.route.id store. This delivers a string representing the route definition, useful for conditional rendering or specific logic based on the current route.



<script>
  import { page } from '$app/stores';
</script>

<p>Current Route: {$page.route.id}</p>

{#if $page.route.id === '/blog/[slug]'}
  <p>You're on a blog post details page!</p>
{/if}


Enter fullscreen mode Exit fullscreen mode

Rock Your SvelteKit Apps with Dynamic URLs!

There you have it, Svelte comrades! Now you've got the magic touch when it comes to grabbing URLs on the fly in your SvelteKit projects. This opens the door to all sorts of cool stuff, from building fancy dashboards that update based on the current page to making those social media integrations a breeze.

SvelteKit is constantly evolving, so keep your eyes peeled for upcoming features that might make URL wrangling even easier. In the meantime, go forth and conquer the SvelteKit world with your newfound URL superpowers! Happy coding (and keep building awesome stuff)!

Top comments (1)

Collapse
 
jdromero88 profile image
José Romero

Thank you! this was really helpful!