Reactive Variables with let
Declare reactive state in Svelte using plain let declarations.
Reactive Variables with let is a free Sveltejs Academy lesson on CoddyKit — 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, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
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 updateObjects 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 changedWhy 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.
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, and the Sveltejs Academy course includes 4 lessons in total. 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.
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; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
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
- The script template style Structure
- Reactive Variables with let
- Interpolation: {expression}
- Computed Values: $: reactive declarations