Documentation · Chapitre 10

Coordonner effets et travail asynchrone.

Les effets réagissent aux dépendances et gèrent debounce, throttle, nettoyage et concurrence latest.

Chaque leçon part du problème, explique le mécanisme puis propose une vérification concrète.

Attribut ou fonction

#[Effect] nomme une méthode réutilisable. Effect() dans body ressemble au placement React et convient à un comportement local. Les deux formes coexistent.

phpaml — zsh
#[Effect('search', runOnMount: false, debounce: 250, concurrency: 'latest')]
private function search(): ClientInstruction
{
    return Api::get('/api/search', ['q' => $this->state('search')])
        ->thenSet('results');
}

Éviter les réponses dépassées

Debounce attend le calme, throttle plafonne la fréquence et latest rend obsolète l’ancien résultat lorsqu’une nouvelle requête commence.

Les appels backend restent visibles

Api::get/post/put/patch/delete crée une instruction réseau explicite. Une mutation locale ne devient jamais silencieusement une requête HTTP.