Sinais e efeitos

Como os componentes sólidos são uma chamada de função, eles executam apenas uma vez na criação. Portanto, se você tivesse um sinal de que precisava acessar fora do modelo, teria que envolvê -lo em um efeito. Dentro do JSX, você pode simplesmente chamar o sinal de getter, como acabamos de fazer count()e isso lhe dará o valor reativo à medida que muda. No entanto, no corpo da função, você precisa usar um efeito:

console.log("Count:",count()); // ❌ not tracked - only runs once during initialization.

createEffect(()=>{  console.log(count()); // ✅ will update whenever `count()` changes.
});
// snippet from the docs

Então, useEffect é um tipo de observador ad hoc para sinais. Sempre que você precisar executar algum efeito fora do tema com base em um sinal, é isso que você precisa usar. Entre createSignal, createEffecte a reatividade nativa da JSX, você tem a maioria dos elementos básicos da reatividade.

Buscando uma API remota com CreaterSource

Recursos de camadas sólidas sobre os recursos básicos dos sinais. Uma dessas capacidades é createResourceo que facilita lidar com solicitações assíncronas de maneira reativa. Esta é uma camada simples em cima de createSignal. Vamos usá -lo criar um Joke Componente que pega 10 piadas da API da piada e as exibe.