A store in Svelte is a simple object that holds data and allows multiple components to share and react to changes in that data.
Click to reveal answer
beginner
Why do we use stores to manage shared state in Svelte?
Stores let different components access and update the same data easily without passing props through many layers, making the app simpler and more organized.
Click to reveal answer
beginner
How does a store help when multiple components need the same data?
A store keeps the data in one place. When one component changes the data, all other components using that store automatically update to show the new data.
Click to reveal answer
intermediate
What problem does using stores solve compared to passing props?
Passing props through many components can be confusing and hard to manage. Stores avoid this by letting components directly subscribe to shared data, reducing complexity.
Click to reveal answer
intermediate
Can stores in Svelte improve app performance? How?
Yes. Stores update only the components that use the shared data, so the app avoids unnecessary updates and stays fast.
Click to reveal answer
What is the main purpose of a store in Svelte?
ATo write CSS animations
BTo style components
CTo handle routing between pages
DTo share and react to data changes across components
✗ Incorrect
Stores hold shared data and notify components when data changes, enabling reactive updates.
How do stores help avoid prop drilling?
ABy letting components subscribe directly to shared data
BBy creating more nested components
CBy duplicating data in each component
DBy disabling reactivity
✗ Incorrect
Stores allow components to access shared data directly without passing props through many layers.
When a store's data changes, what happens in Svelte?
AAll subscribed components update automatically
BNothing happens until the page reloads
COnly the first component updates
DThe app crashes
✗ Incorrect
Svelte automatically updates all components subscribed to the store when its data changes.
Which of these is NOT a benefit of using stores for shared state?
ASimplifies data sharing
BAutomatically styles components
CImproves code organization
DReduces prop drilling
✗ Incorrect
Stores manage data, not styles. Styling is handled separately.
What kind of data is best managed with a store in Svelte?
AStatic text that never changes
BData used by only one component
CData shared by multiple components
DCSS class names
✗ Incorrect
Stores are ideal for data that many components need to access and update.
Explain in your own words why stores are useful for managing shared state in Svelte.
Think about how multiple friends sharing one notebook is easier than each having their own copy.
You got /4 concepts.
Describe how a change in a store affects components subscribed to it.
Imagine changing a shared calendar that everyone looks at.
You got /4 concepts.
Practice
(1/5)
1. Why do Svelte stores help manage shared state in an app?
easy
A. They store data only for one component at a time.
B. They make the app run faster by skipping updates.
C. They keep data in one place and update all parts automatically.
D. They prevent any data changes after initialization.
Solution
Step 1: Understand the role of stores
Svelte stores hold shared data centrally so multiple components can access it easily.
Step 2: Recognize automatic updates
When the store data changes, all components using it update automatically, keeping UI in sync.
Final Answer:
They keep data in one place and update all parts automatically. -> Option C
Quick Check:
Shared data + auto update = A [OK]
Hint: Stores centralize data and auto-update components [OK]
Common Mistakes:
Thinking stores only speed up the app
Believing stores hold data per component only
Assuming stores freeze data after setup
2. Which of the following is the correct way to import and create a writable store in Svelte?
easy
A. import writable from 'svelte'; const count = writable(0);
B. import { writable } from 'svelte/store'; const count = store(0);
C. import { store } from 'svelte/store'; const count = store(0);
D. import { writable } from 'svelte/store'; const count = writable(0);
Solution
Step 1: Check import syntax
The writable store is imported from 'svelte/store' using curly braces around writable.
Step 2: Verify store creation
Creating a writable store uses writable(initialValue), so writable(0) is correct.
Final Answer:
import { writable } from 'svelte/store'; const count = writable(0); -> Option D
Quick Check:
Correct import + writable() = B [OK]
Hint: Use curly braces to import writable from 'svelte/store' [OK]
Common Mistakes:
Importing writable without braces
Using 'store' instead of 'writable'
Calling store() instead of writable()
3. Given this Svelte store code, what will be logged to the console?
import { writable } from 'svelte/store';
const count = writable(0);
count.subscribe(value => console.log(value));
count.set(5);
count.update(n => n + 1);
medium
A. 0, 5, 6
B. 5, 6
C. 0, 1, 6
D. 0, 5, 5
Solution
Step 1: Understand subscription initial call
Subscribing to a writable store immediately calls the callback with the current value, so 0 is logged first.
Step 2: Follow set and update calls
count.set(5) changes value to 5, logging 5. Then count.update(n => n + 1) adds 1, logging 6.
Final Answer:
0, 5, 6 -> Option A
Quick Check:
Subscribe logs initial + set + update values = A [OK]
Hint: Subscribe logs current value immediately, then on changes [OK]
Common Mistakes:
Ignoring initial subscription call
Thinking update replaces value instead of adding
Missing the last logged value
4. What is wrong with this Svelte store usage?
import { writable } from 'svelte/store';
const user = writable({ name: 'Alice' });
// In component
user.name = 'Bob';
medium
A. The store must be declared with let, not const.
B. Directly changing user.name does not update the store value.
C. Writable stores cannot hold objects as values.
D. The store should be imported from 'svelte' not 'svelte/store'.
Solution
Step 1: Identify how to update store values
Writable stores require using set() or update() to change their value, not direct property assignment.
Step 2: Explain why direct property change fails
Changing user.name directly modifies the object but does not notify the store, so subscribers won't update.
Final Answer:
Directly changing user.name does not update the store value. -> Option B
Quick Check:
Use set() or update() to change store values [OK]
Hint: Always use set() or update() to change store data [OK]
Common Mistakes:
Trying to mutate store value properties directly
Importing writable incorrectly
Thinking const prevents store updates
5. You want to share a counter value across multiple components and update it from any of them. Which approach best uses Svelte stores to achieve this?
hard
A. Create a writable store in a separate file and import it in all components.
B. Pass the counter value as a prop from parent to child components only.
C. Use local variables in each component and sync them manually.
D. Create a store inside each component separately.
Solution
Step 1: Understand shared state needs
To share and update data across components, a single source of truth is needed.
Step 2: Evaluate store usage
Creating a writable store in one file and importing it everywhere ensures all components share and react to the same data.
Step 3: Compare other options
Passing props only works top-down and is cumbersome for many components; local variables are isolated; separate stores cause desync.
Final Answer:
Create a writable store in a separate file and import it in all components. -> Option A
Quick Check:
Single shared store file = C [OK]
Hint: Use one store file imported by all components [OK]
Common Mistakes:
Trying to sync local variables manually
Passing props for deeply nested sharing
Creating multiple stores causing inconsistent state
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.