smalljs$molRechercher⌘ KDocsPlaygroundComparerÉcosystèmeÀ proposFR
État et réactivitéGetting StartedIntroductionModèle mentalDémarrageDe TypeScript à view.treeStructure d'un projetOutillageEssentialsInstallationVuesÉtat et réactivitéRoutageRenduTestsDéploiementDépannageDataRécupération de donnéesSchémas de donnéesGiper BazaMoreVitrineDe React, Vue et SvelteRecettesAdvancedPluginsMétadonnées de moduleHors-ligneVues fantômesAboutFAQÉquipeVersionsAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

État et réactivité

L'état de $mol se comporte comme un tableur : vous déclarez comment une valeur est calculée, et tout ce qui en dépend se met à jour tout seul. Pas de stores, pas de dispatch, pas de hooks d'effet — le graphe de dépendances suit ce qu'il faut recalculer.

Propriétés réactives

Une méthode décorée avec @ $mol_mem est une cellule réactive mise en cache. Elle s'exécute une fois, mémorise son résultat et ne recalcule que lorsqu'une valeur qu'elle a lue a changé.1namespace $.$$ {2 export class $my_counter extends $.$my_counter {3 @ $mol_mem count() { return 0 }4 5 @ $mol_mem doubled() {6 return this.count() * 27 }8 }9}doubled lit count, il s'abonne donc automatiquement à count. Modifiez count et chaque vue affichant doubled se rafraîchit — il n'y a rien à abonner à la main.

Lecture et écriture

Une propriété est à la fois getter et setter : appelez-la sans argument pour lire, avec un argument pour écrire.1@ $mol_action2increment() {3 this.count( this.count() + 1 )4}

Actions vs calculs

Cette seule distinction garde le code réactif prévisible :@ $mol_mem est un calcul pur — ne fait que lire d'autres cellules et renvoyer une valeur.@ $mol_action est un effet — les écritures dans l'état, les appels réseau et les minuteries vont ici.Écrire dans une cellule depuis un @ $mol_mem crée une boucle de rétroaction (l'écriture invalide une dépendance, qui recalcule, qui réécrit). $mol le signale comme un abonnement circulaire. Le correctif est toujours le même : gardez les effets de bord dans les actions, gardez les calculs purs.Dans @ $mol_mem vous pouvezmais pasLes gestionnaires de boutons sont générés en @ $mol_mem sur la classe de base ; surchargez-les avec @ $mol_action pour qu'ils puissent écrire en toute sécurité :1@ $mol_action2submit() {3 this.saved( true )4}

L'état dérivé se compose

Comme les dépendances sont suivies automatiquement, les valeurs dérivées s'enchaînent sans aucun câblage. Chacune lit la précédente ; un changement à la racine se propage exactement aussi loin que nécessaire :1@ $mol_mem full_name() {2 return `${ this.first() } ${ this.last() }`.trim()3}4 5@ $mol_mem greeting() {6 return this.full_name() ? `Hello, ${ this.full_name() }!` : 'Hello!'7}
Modifier cette page sur GitHubÉtait-ce utile ?OuiNonPrécédentVuesSuivantRoutage
Sur cette pagePropriétés réactivesLecture et écritureActions vs calculsL'état dérivé se composeÉtat à cléL'asynchrone n'est qu'une valeurÉtat transitoire entre événementsSuite
Type to search the documentation.