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.
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 $.$${2export class $my_profileextends$.$my_profile{3@ $mol_mem4user(){5return this.$.$mol_fetch.json('https://api.example.com/me')as{name:string}6}7name(){8return 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.
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.
Jedna metoda z opcjonalnym argumentem jest naraz getterem, setterem, wartością pochodną i stanem:1@ $mol_mem2count(next?:number){3return 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(){3return this.count()*24}56@ $mol_action7increment(){8this.count(this.count()+1)9}Edytuj tę stronę na GitHubieCzy to było pomocne?TakNiePoprzedniaWprowadzenieNastępnaPierwsze krokiNa tej stroniePull, nie pushBez cyklu życiaWłaściwość to komórkaSynchroniczny kod, który czekaWszystko jest nadpisaniemJak czytać źródłaNazwyDalejType to search the documentation.