Il routing in $mol non è una libreria separata — l'URL è solo un altro pezzo di stato reattivo. Leggilo, scrivilo, e le viste reagiscono nello stesso modo in cui reagiscono a qualsiasi cella. Il pulsante indietro, i deep link e gli URL condivisibili sono tutti gratuiti.
$mol_state_arg espone i parametri dell'URL come valori reattivi. Collegane uno a una proprietà e la barra degli indirizzi diventa la tua fonte di verità:1namespace $.$${2export class $my_appextends$.$my_app{3@ $mol_mem4page(next?:string){5return $mol_state_arg.value('page',next)??'home'6}7}8}Leggere page() restituisce il valore corrente; chiamare page('about') naviga. Tutto ciò che legge page() viene ri-renderizzato al cambiamento — incluso il pulsante indietro del browser, che aggiorna la cella per te.
Combina un valore instradato con un semplice switch per scegliere cosa renderizzare. Poiché le viste sono pigre, le schermate che non mostri non vengono mai costruite:1@ $mol_mem2body_content(){3switch (this.page()){4case 'about':return[this.About()]5case 'docs':return[this.Docs()]6default:return[this.Home()]7}8}
In view.tree, un link può impostare argomenti dell'URL in modo dichiarativo — cliccarlo naviga senza alcun gestore:1<= About_link $mol_link2 arg *3 page \about4 sub /<= about_label \About$mol_link si contrassegna anche come attivo (mol_link_current) quando i suoi argomenti corrispondono all'URL corrente, quindi evidenziare la pagina corrente non richiede alcuno stato aggiuntivo.