Sveltejs Academy · Lesson

Reactive Variables with let

Declare reactive state in Svelte using plain let declarations.

Lesson 2 of 413 steps

Reactive Variables with let is a free Sveltejs Academy lesson on CoddyKit. This is lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Sveltejs Academy learning path, and your progress syncs across the web and the CoddyKit app. The Sveltejs Academy course includes 4 lessons in total.

No Special API

In Svelte, ordinary let declarations in the script block are reactive. There is no useState equivalent.

Declare and Use

Declare a variable and interpolate it in markup. Updating it re-renders the part that depends on it.

<script>
  let count = 0;
</script>

<p>The count is {count}</p>

Update by Assignment

Assignment is the trigger. count = count + 1 tells Svelte the value changed.

function inc() { count = count + 1; }

Increment Shorthand

Standard JS shorthands also work: count++, count += 5, etc.

function inc() { count++; }

Arrays and Mutation

Mutating an array via push does NOT trigger reactivity. You must reassign.

items = [...items, newItem];   // ok
items.push(newItem);            // does not update

Objects and Mutation

Same rule applies to objects: replace the reference, or reassign a specific property and the parent.

user.name = "Bea";
user = user;   // tell Svelte it changed

Why Assignment Matters

The Svelte compiler instruments assignment operators. Method calls like push are invisible to the compiler.

Local vs Shared

Plain let creates state local to one component instance. To share between components, use props or stores.

Initial Values

The right side of the let declaration runs once when the component instance initializes.

Typing

With lang="ts", give your variables explicit types.

<script lang="ts">
  let count: number = 0;
</script>

Multiple Variables

You can declare as many reactive variables as you want, on one or many lines.

let x = 0, y = 0;
let items = [];

Quick Check

What triggers reactivity?

Recap

Plain let is reactive. Reassign (not mutate) to trigger updates. Arrays and objects need reference changes.

Free to start

Learn HTML with an AI tutor — free

Write and run real code in your browser, get instant help from a 24/7 AI tutor, and pick up where you left off on the web or in the app.

Courses
41
Lessons
163

Frequently Asked Questions

Is the “Reactive Variables with let” lesson free?

Yes — the full text of “Reactive Variables with let” is free to read here on the web. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Sveltejs Academy course, upgrade to CoddyKit PRO. The Sveltejs Academy course includes 4 lessons in total.

What will I learn in “Reactive Variables with let”?

Declare reactive state in Svelte using plain let declarations. You practise Sveltejs Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Sveltejs Academy?

No prior experience is required. Sveltejs Academy on CoddyKit is structured for beginners through advanced learners, so you can start here or from the beginning and move at your own pace. This is lesson 2 of 4.

How long does the “Reactive Variables with let” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Sveltejs Academy lesson?

Yes. Every Sveltejs Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. The script template style Structure
  2. Reactive Variables with let
  3. Interpolation: {expression}
  4. Computed Values: $: reactive declarations
← Back to Sveltejs Academy