smalljs$molCerca⌘ KDocumentazionePlaygroundConfrontoEcosistemaInformazioniIT
Stato e reattivitàGetting StartedIntroduzioneModello mentalePer iniziareDa TypeScript a view.treeStruttura del progettoStrumentiEssentialsInstallazioneVisteStato e reattivitàRoutingRenderingTestingDeploymentRisoluzione dei problemiDataRecupero datiSchemi di datiGiper BazaMoreVetrinaDa React, Vue e SvelteRicettarioAdvancedPluginMetadati del moduloOfflineViste fantasmaAboutFAQTeamReleaseAPI$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

Stato e reattività

Lo stato di $mol si comporta come un foglio di calcolo: dichiari come viene calcolato un valore e tutto ciò che ne dipende si aggiorna da solo. Niente store, niente dispatch, niente hook di effetto — il grafo delle dipendenze traccia cosa ricalcolare.

Proprietà reattive

Un metodo decorato con @ $mol_mem è una cella reattiva memorizzata nella cache. Viene eseguito una volta, ricorda il suo risultato e ricalcola solo quando qualcosa che ha letto è cambiato.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 legge count, quindi si iscrive automaticamente a count. Modifica count e ogni vista che mostra doubled si aggiorna — non c'è nulla da iscrivere a mano.

Lettura e scrittura

Una proprietà è sia getter che setter: chiamala senza argomenti per leggere, con un argomento per scrivere.1@ $mol_action2increment() {3 this.count( this.count() + 1 )4}

Azioni vs. calcoli

Questa sola distinzione mantiene prevedibile il codice reattivo:@ $mol_mem è un calcolo puro — legge solo altre celle e restituisce un valore.@ $mol_action è un effetto — scritture nello stato, chiamate di rete e timer vanno qui.Scrivere in una cella dall'interno di un @ $mol_mem crea un ciclo di feedback (la scrittura invalida una dipendenza, che ricalcola, che riscrive). $mol lo segnala come iscrizione circolare. La correzione è sempre la stessa: tieni gli effetti collaterali nelle azioni, mantieni puri i calcoli.In @ $mol_mem puoima nonI gestori dei pulsanti sono generati come @ $mol_mem sulla classe base; sovrascrivili con @ $mol_action affinché possano scrivere in sicurezza:1@ $mol_action2submit() {3 this.saved( true )4}

Lo stato derivato si compone

Poiché le dipendenze sono tracciate automaticamente, i valori derivati si concatenano senza alcun cablaggio. Ognuno legge il precedente; una modifica alla radice si propaga esattamente fin dove serve: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}
Modifica questa pagina su GitHubÈ stato utile?NoPrecedenteVisteSuccessivoRouting
In questa paginaProprietà reattiveLettura e scritturaAzioni vs. calcoliLo stato derivato si componeStato con chiaveL'asincrono è solo un valoreStato transitorio tra eventiAvanti
Type to search the documentation.