📖 Scenario: You are building a simple Svelte app that tracks a user's score and shows a message whenever the score changes.This is like a game scoreboard that updates the message automatically when the score updates.
🎯 Goal: Create a Svelte component that uses a reactive block to show a message whenever the score changes.
📋 What You'll Learn
Create a score variable initialized to 0
Create a message variable initialized to an empty string
Use a reactive block $: to update message whenever score changes
Display the score and message in the component
💡 Why This Matters
🌍 Real World
Reactive blocks help keep your UI in sync with data changes automatically, like updating a live scoreboard or showing notifications.
💼 Career
Understanding reactive blocks is key for building interactive web apps with Svelte, a popular modern framework used in many companies.
Progress0 / 4 steps
1
Set up initial variables
Create a variable called score and set it to 0. Also create a variable called message and set it to an empty string "".
Svelte
Hint
Use let to declare variables in Svelte scripts.
2
Add a reactive block to update message
Add a reactive block using $: that updates message to the string `Score is now ${score}` whenever score changes.
Svelte
Hint
Use $: followed by the assignment to create a reactive block.
3
Display score and message in the component
In the component's markup, add a <p> tag that shows the text Score: {score} and another <p> tag that shows the {message}.
Svelte
Hint
Use curly braces {} to insert variables in Svelte markup.
4
Add a button to increase the score
Add a <button> with the text Increase Score that increments score by 1 when clicked using on:click.
Svelte
Hint
Use on:click to handle button clicks in Svelte.
Practice
(1/5)
1. What does a reactive block labeled with $: do in Svelte?
easy
A. It runs the code inside automatically whenever referenced variables change.
B. It defines a new component in Svelte.
C. It creates a CSS style block scoped to the component.
D. It pauses the component rendering until a condition is met.
Solution
Step 1: Understand the role of $: in Svelte
The $: label creates a reactive block that runs code automatically when variables it uses change.
Step 2: Identify the behavior of reactive blocks
Reactive blocks are used for side effects like logging or updating related data, triggered by variable changes.
Final Answer:
It runs the code inside automatically whenever referenced variables change. -> Option A
Quick Check:
Reactive block = auto-run on variable change [OK]
Hint: Reactive blocks run code when variables they use change [OK]
Common Mistakes:
Thinking reactive blocks define components
Confusing reactive blocks with CSS or styling
Believing reactive blocks pause rendering
2. Which of the following is the correct syntax to create a reactive block in Svelte?
easy
A. $: { console.log(count); }
B. reactive: { console.log(count); }
C. @reactive { console.log(count); }
D. #: { console.log(count); }
Solution
Step 1: Recall the syntax for reactive blocks in Svelte
Svelte uses the $: label followed by a block or statement to create reactive code.
Step 2: Match the correct syntax
$: { console.log(count); } uses $: { ... } which is the correct way to write a reactive block.
Final Answer:
$: { console.log(count); } -> Option A
Quick Check:
Reactive block syntax = $: [OK]
Hint: Look for the $: label before the block [OK]
Common Mistakes:
Using 'reactive:' or '@reactive' which are invalid
Confusing with other symbols like '#' or '@'
Missing the $: label entirely
3. Consider this Svelte code:
let count = 0;
$: console.log(`Count is ${count}`);
function increment() {
count += 1;
}
What happens when the increment() function is called?
medium
A. The console logs 'Count is 0' every time.
B. Nothing is logged because reactive blocks don't run on function calls.
C. The console logs 'Count is 1', 'Count is 2', etc., each time increment is called.
D. An error occurs because reactive blocks cannot use template strings.
Solution
Step 1: Understand reactive block behavior with variable changes
The reactive block logs the current value of count whenever count changes.
Step 2: Analyze what happens on calling increment()
Calling increment() increases count by 1, triggering the reactive block to log the updated count.
Final Answer:
The console logs 'Count is 1', 'Count is 2', etc., each time increment is called. -> Option C
Quick Check:
Reactive block logs on variable change = The console logs 'Count is 1', 'Count is 2', etc., each time increment is called. [OK]
Hint: Reactive blocks run when variables they use change [OK]