smalljs$molSzukaj⌘ KDokumentacjaPlaygroundPorównanieEkosystemO projekciePL
Model mentalnyGetting StartedWprowadzenieModel mentalnyPierwsze krokiZ TypeScriptu do view.treeStruktura projektuNarzędziaEssentialsInstalacjaWidokiStan i reaktywnośćRoutingRenderowanieTestowanieWdrożenieRozwiązywanie problemówDataPobieranie danychSchematy danychGiper BazaMorePrezentacjaZ React, Vue i SvelteZbiór przepisówAdvancedWtyczkiMetadane modułuOfflineWidoki-duchyAboutFAQZespółWydaniaAPI$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

Model mentalny

Jeśli przychodzisz z React albo Vue, pierwsze dni w $mol spędzasz na szukaniu rzeczy, których tu nie ma: computed, watch, useEffect, onMounted, fetch w haku cyklu życia. Nie są schowane gdzieś w API — model nie ma dla nich miejsca. Ta strona to pięciominutowa wersja tego modelu. Przeczytaj ją przed Widokami i wróć tu, gdy zabraknie ci znajomej nazwy.

Pull, nie push

Nic nie jest obliczane, dopóki ktoś tego nie przeczyta. Widok renderuje się, czytając swoje właściwości; każda właściwość czyta to, czego potrzebuje; łańcuch zależności składa się sam z tych odczytów. Nie ma subskrypcji do zadeklarowania ani watch do zarejestrowania: odczyt jest subskrypcją.1$my_profile $mol_view2 sub /3 <= Name $mol_view4 sub / <= name \1namespace $.$$ {2 export class $my_profile extends $.$my_profile {3 @ $mol_mem4 user() {5 return this.$.$mol_fetch.json( 'https://api.example.com/me' ) as { name: string }6 }7 name() {8 return this.user().name9 }10 }11}Renderowanie Name czyta name(), name() czyta user(), a user() sięga do sieci. Nikt nie powiedział widokowi o żądaniu i nikt nie powiedział żądaniu o widoku. Gdy user() się zmieni, przeliczy się wszystko, co je czytało — i nic poza tym.

Bez cyklu życia

Nie ma mounted, nie ma useEffect, nie ma created. Dane zamawia się, czytając właściwość, a widok czyta swoje właściwości wtedy, gdy się renderuje. Dlatego przykład powyżej ładuje użytkownika w chwili, gdy $my_profile pojawia się na ekranie, i ani chwili wcześniej. Gdy widok znika z ekranu, nikt już nie czyta user(), a komórka jest zwalniana razem z widokiem.To cały zamiennik wzorca „fetch on mount”: widok prosi o to, czego potrzebuje, a framework decyduje, kiedy zapytać. Ładowanie nie jest podpięte do zdarzenia strony, tylko do tego, że coś jest widoczne.

Właściwość to komórka

Jedna metoda z opcjonalnym argumentem jest naraz getterem, setterem, wartością pochodną i stanem:1@ $mol_mem2count( next?: number ) {3 return next ?? 04}Wywołana bez argumentu czyta, wywołana z argumentem zapisuje. @ $mol_mem zamienia metodę w buforowaną komórkę, która przelicza się, gdy zmieniło się coś, co przeczytała. Wartość pochodna to po prostu metoda @ $mol_mem czytająca inne metody. Obserwator nie jest potrzebny: efekt uboczny należy do zdarzenia, a handler zdarzenia to metoda oznaczona @ $mol_action.1@ $mol_mem2doubled() {3 return this.count() * 24}5 6@ $mol_action7increment() {8 this.count( this.count() + 1 )9}
Edytuj tę stronę na GitHubieCzy to było pomocne?TakNiePoprzedniaWprowadzenieNastępnaPierwsze kroki
Na tej stroniePull, nie pushBez cyklu życiaWłaściwość to komórkaSynchroniczny kod, który czekaWszystko jest nadpisaniemJak czytać źródłaNazwyDalej
Type to search the documentation.