Routing w $mol nie jest osobną biblioteką — URL to po prostu kolejny kawałek reaktywnego stanu. Odczytaj go, zapisz, a widoki zareagują tak samo, jak reagują na dowolną komórkę. Przycisk wstecz, głębokie linki i udostępnialne adresy URL są za darmo.
$mol_state_arg udostępnia parametry URL jako wartości reaktywne. Powiąż jeden z właściwością, a pasek adresu stanie się twoim źródłem prawdy:1namespace $.$${2export class $my_appextends$.$my_app{3@ $mol_mem4page(next?:string){5return $mol_state_arg.value('page',next)??'home'6}7}8}Odczyt page() zwraca bieżącą wartość; wywołanie page('about') nawiguje. Wszystko, co czyta page(), renderuje się ponownie przy zmianie — łącznie z przyciskiem wstecz przeglądarki, który aktualizuje komórkę za ciebie.
Połącz wartość z routingu ze zwykłym switch, aby wybrać, co się renderuje. Ponieważ widoki są leniwe, ekrany, których nie pokazujesz, nigdy nie są budowane:1@ $mol_mem2body_content(){3switch (this.page()){4case 'about':return[this.About()]5case 'docs':return[this.Docs()]6default:return[this.Home()]7}8}
W view.tree link może ustawiać argumenty URL deklaratywnie — kliknięcie go nawiguje bez handlera:1<= About_link $mol_link2 arg *3 page \about4 sub /<= about_label \About$mol_link sam oznacza się jako aktywny (mol_link_current), gdy jego argumenty pasują do bieżącego URL, więc podświetlenie bieżącej strony nie wymaga dodatkowego stanu.
Argumenty są niezależne, więc ekran może routować na kilku naraz. Ta właśnie strona dokumentacji routuje zarówno na section, jak i na page:1<= Guide_link $mol_link2 arg *3 section \docs4 page \viewsKażdy klucz odbywa podróż w obie strony przez URL, więc każdy widok jest udostępnialny i możliwy do dodania do zakładek z założenia. Ustawienie jednego argumentu pozostawia pozostałe nietknięte, co sprawia, że głębokie linki — konkretna sekcja i strona i kotwica — to tylko kwestia ustawienia kluczy, na których ci zależy.Edytuj tę stronę na GitHubieCzy to było pomocne?TakNiePoprzedniaStan i reaktywnośćNastępnaRenderowanieNa tej stronieURL jako stanPrzełączanie ekranówLinki ustawiające argumentyWiele parametrówStan, który nie powinien być w URLDalejType to search the documentation.