Book Image

Svelte 3 Up and Running

By : Alessandro Segala
Book Image

Svelte 3 Up and Running

By: Alessandro Segala

Overview of this book

Svelte is a modern JavaScript framework used to build static web apps that are fast and lean, as well as being fun for developers to use. This book is a concise and practical introduction for those who are new to the Svelte framework which will have you up to speed with building apps quickly, and teach you how to use Svelte 3 to build apps that offer a great app user experience (UX). The book starts with an introduction to Svelte 3, before showing you how to set up your first complete application with the framework. Filled with code samples, each chapter will show you how to write components using the Svelte template syntax and the application programming interfaces (APIs) of the Svelte framework. As you advance, you’ll go from scaffolding your project and tool setup all the way through to production with DevOps principles such as automated testing, continuous integration, and continuous delivery (CI/CD). Finally, you’ll deploy your application in the cloud with object storage services and a content delivery network (CDN) for best-in-class performance for your users. By the end of this book, you’ll have learned how to build and deploy apps using Svelte 3 to solve real-world problems and deliver impressive results.
Table of Contents (9 chapters)

Routing with hash-based routing

For the first example, we'll implement routing with svelte-spa-router (https://www.npmjs.com/package/svelte-spa-router), which uses hash-based routing.

You can find the final code for this section in the project's GitHub repository in the ch5 folder (for a direct link, go to https://bit.ly/sveltebook-ch5).

To start, install the module with the following command. We're saving it as a dependency and not a devDependency because it will be included in our application's bundle:

npm install --save svelte-spa-router@2

Defining the routes object

Using svelte-spa-router requires defining your routes in a dictionary (object) where the key is the path to match, which can optionally use parameters, and the value is a Svelte component object.

Create a file called src/routes.js that includes our routes dictionary:

src/routes.js

import ViewAdd from './components/ViewAdd.svelte'
import ViewObject from './components...