Não confudna store com estado dos componentes, São coisas diferentes.
Stores são usadas para gerenciamento/compartilhamento de estado na aplicação inteira, se a store mudar, todos os componentes que dependem dessa store vão renderizar denovo.
O estado do componente é so literalmente uma variavel do javascript normal. Não requer nenhum boilerplate para ser reativo, em todos os lugares que você usar essa variavel o svelte vai perceber que depende daquela variavel e se você setar a variavel com operador =, --, ++ e etc, ele já atualiza a interface.
Se você estiver proucurando algo como useEffect para sincronizar o estado com outras coisas fora do sistema do svelte vc pode colocar um statement ou bloco no topo do escopo na tag script e colocar um $: no começo, o svelte vai rodar essa linha denovo se alguma dependencia for mudada.
Sim, por isso que eu disse que o svelte
separa estado local que o componente possui criado com a palavra chave let de estado compartilhado/combinável criado usando stores
Só que assim como no React os componentes não conseguem reagir a mudanças numa store, apenas a mudanças em estados locais Então para fazer um componente reagir a mudanças em uma store é necessário criar um estado local e sincronizar esse estado com a store usando o método .subscribe (por isso o contrato de store exige esse método) para que então o componente reaja ao estado local Basicamente quando você escreve isso:
<script lang="ts">
import {writable} from 'svelte/store'
const count = writable(0)
</script>
<button on:click={() => {$count++}}>Count is: {$count}</button>
O compilador transforma nisso:
<script lang="ts">
import {writable} from 'svelte/store'
import {onDestroy} from 'svelte'
const count = writable(0)
let $count
const unsubscribe = count.subscribe((value) => {
$count = value
})
onDestroy(() => {
unsubscribe()
})
</script>
<button on:click={() => {count.update((value) => value + 1)}}>Count is: {$count}</button>
No fim para reagir a estados externos o svelte precisa fazer algo parecido com o hook useExternalAsyncStore do react (só que 1000x mais poderoso e versátil) A diferença dos signals no Solid é que os componentes conseguem reagir diretamente aos estados compartilhaveis/combináveis que são os signals, sem precisar (e sem poder) usar estado local no componente