TK2 - kokjp1/TechTrack GitHub Wiki

Svelte stores

Wat zijn de opties om een data object project-wide toegankelijk te maken?

In principe kan je ook variabelen exporteren en aanpassen en javascript bestanden/modules importeren en exporteren overal maar dat is niet zo handig en update volgensmij ook niet automatisch als er iets verandert in de data. Ik kwam al redelijk snel uit op stores en ben toen gaan kijken wat je precies kon met stores / wat stores precies waren. Toen bedacht ik bij mezelf wat nou als ik mijn data allen fetch in een javascript bestand maar vervolgens direct in een store zet en die store overal ga gebruiken als ik iets van data wil ophalen (zoals een song title, coverurl of artiest).

Het voordeel van stores is dat het specifiek gemaakt is om data beschikbaar te maken voor AL je bestanden in je codebase via 1 import regel. Een ander voordeel ervan is dat de data ook heel makkelijk reactive is via $. Hierdoor is elk element dat je aangeroepen hebt via de store data altijd up-to-date en weet je zeker dat je op elke pagina altijd dezelfde data zal zien. Zodra er iets verandert in de store (bijv nieuwe/andere data) -> is dat op elke pagina die de store gebruikt ook meteen zo. En niet alleen is deze data beschikbaar, je kan ook writen/readen naar de data als je dat zou willen. Dit is handig als je de store niet gebruikt voor data doorgave, maar bijvoorbeeld om een UI state bij te houden of andere client-side dingen waar meerdere bestanden gebruik van moeten maken.