Bird
Raised Fist0
Svelteframework~30 mins

File-based routing in Svelte - Mini Project: Build & Apply

Choose your learning style10 modes available
File-based Routing in Svelte
📖 Scenario: You are building a simple website with multiple pages using SvelteKit. You want to use file-based routing to create pages that users can visit by URL.
🎯 Goal: Create a SvelteKit project structure with file-based routing by adding page files in the src/routes folder. Build a homepage and an about page that users can navigate to by URL.
📋 What You'll Learn
Create a src/routes/+page.svelte file for the homepage
Create a src/routes/about/+page.svelte file for the about page
Add simple content in each page to identify it
Use file-based routing conventions of SvelteKit
💡 Why This Matters
🌍 Real World
File-based routing is used in modern web frameworks to simplify creating multiple pages without manual route configuration.
💼 Career
Understanding file-based routing is essential for building scalable web apps with frameworks like SvelteKit, Next.js, or Nuxt.js.
Progress0 / 4 steps
1
Create the homepage file
Create a file called src/routes/+page.svelte with a <h1> heading that says Home Page.
Svelte
Hint

This file defines the homepage content. The filename +page.svelte inside src/routes makes it the root page.

2
Create the about page folder and file
Create a folder called about inside src/routes. Inside it, create a file called +page.svelte with a <h1> heading that says About Page.
Svelte
Hint

Folders inside src/routes create URL paths. The file +page.svelte inside about folder becomes the /about page.

3
Add navigation links to homepage
In src/routes/+page.svelte, add a navigation link to the about page using an <a> tag with href="/about" and link text About below the <h1> heading.
Svelte
Hint

Use a normal anchor tag with href set to /about to link to the about page.

4
Add navigation link back to homepage on about page
In src/routes/about/+page.svelte, add a navigation link back to the homepage using an <a> tag with href="/" and link text Home below the <h1> heading.
Svelte
Hint

Use an anchor tag with href / to link back to the homepage.

Practice

(1/5)
1. What does a +page.svelte file inside src/routes represent in SvelteKit?
easy
A. A page that users can visit via a URL
B. A component that cannot be accessed directly
C. A configuration file for routing
D. A style sheet for the app

Solution

  1. Step 1: Understand the role of +page.svelte

    In SvelteKit, +page.svelte files define pages that users can visit through URLs.
  2. Step 2: Connect file location to URL

    Files inside src/routes map directly to URL paths, so +page.svelte creates a page at that path.
  3. Final Answer:

    A page that users can visit via a URL -> Option A
  4. Quick Check:

    File-based routing means files = pages [OK]
Hint: Remember: +page.svelte files become pages [OK]
Common Mistakes:
  • Thinking +page.svelte is just a component
  • Confusing routing config with page files
  • Assuming styles are defined in +page.svelte
2. Which of the following is the correct way to create a dynamic route for a user profile page in SvelteKit?
easy
A. src/routes/user/id/+page.svelte
B. src/routes/user/{id}/+page.svelte
C. src/routes/user/:id/+page.svelte
D. src/routes/user/[id]/+page.svelte

Solution

  1. Step 1: Identify dynamic route syntax in SvelteKit

    SvelteKit uses square brackets [param] to define dynamic route parameters.
  2. Step 2: Match the correct folder structure

    The folder src/routes/user/[id] captures the id part dynamically for user profiles.
  3. Final Answer:

    src/routes/user/[id]/+page.svelte -> Option D
  4. Quick Check:

    Dynamic routes use square brackets [OK]
Hint: Use square brackets for dynamic route folders [OK]
Common Mistakes:
  • Using curly braces or colons instead of square brackets
  • Placing dynamic parameter in file name instead of folder
  • Omitting the +page.svelte file
3. Given the folder structure:
src/routes/
  +page.svelte
  about/+page.svelte
  blog/[slug]/+page.svelte

What URL will render the blog/[slug]/+page.svelte page when visiting /blog/hello-world?
medium
A. /blog/slug/hello-world
B. /blog/[slug]
C. /blog/hello-world
D. /blog/hello-world/+page

Solution

  1. Step 1: Understand dynamic route matching

    The folder blog/[slug] matches any URL starting with /blog/ followed by any value as slug.
  2. Step 2: Match URL to folder structure

    The URL /blog/hello-world matches the dynamic route [slug] with slug = 'hello-world'.
  3. Final Answer:

    /blog/hello-world -> Option C
  4. Quick Check:

    Dynamic folder matches URL part directly [OK]
Hint: Dynamic folders match URL parts exactly [OK]
Common Mistakes:
  • Confusing literal folder names with dynamic parameters
  • Expecting the URL to include brackets
  • Adding extra path segments incorrectly
4. You created a file src/routes/blog/[id].svelte instead of src/routes/blog/[id]/+page.svelte. What will happen when you visit /blog/123?
medium
A. The page will not load; routing fails because the file is misplaced
B. The page loads correctly showing the blog with id 123
C. A syntax error occurs during build
D. The app shows a 404 page

Solution

  1. Step 1: Check correct file placement for routing

    SvelteKit requires dynamic routes to be folders with +page.svelte inside, not files named with brackets.
  2. Step 2: Understand routing failure

    Placing [id].svelte as a file breaks routing because SvelteKit expects [id] as a folder.
  3. Final Answer:

    The page will not load; routing fails because the file is misplaced -> Option A
  4. Quick Check:

    Dynamic routes need folders with +page.svelte [OK]
Hint: Dynamic routes must be folders with +page.svelte inside [OK]
Common Mistakes:
  • Naming dynamic routes as files instead of folders
  • Expecting SvelteKit to accept bracketed filenames
  • Ignoring folder structure rules for routing
5. You want to create nested routes for category pages (/shop/electronics) and product pages (/shop/electronics/123) with a dynamic category and product ID. Which folder structure correctly implements this in SvelteKit?
hard
A. src/routes/shop/[category]/[product]/+page.svelte
B. src/routes/shop/[category]/+page.svelte and src/routes/shop/[category]/[product]/+page.svelte
C. src/routes/shop/[category]-[product]/+page.svelte
D. src/routes/shop/+page.svelte with query params for category and product

Solution

  1. Step 1: Understand nested dynamic routes

    To handle URLs like /shop/electronics (category) and /shop/electronics/123 (product), you need nested folders: one for [category] and inside it one for [product].
  2. Step 2: Confirm folder structure with pages

    Each folder can have its own +page.svelte. So src/routes/shop/[category]/+page.svelte can show category info, and src/routes/shop/[category]/[product]/+page.svelte shows product details.
  3. Final Answer:

    src/routes/shop/[category]/+page.svelte and src/routes/shop/[category]/[product]/+page.svelte -> Option B
  4. Quick Check:

    Nested folders for nested dynamic routes [OK]
Hint: Use nested folders for nested dynamic routes [OK]
Common Mistakes:
  • Putting multiple params in one folder name
  • Using query params instead of folder structure
  • Not nesting folders for nested routes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard