O roteamento no $mol não é uma biblioteca separada — a URL é apenas mais um pedaço de estado reativo. Leia-a, escreva-a, e as vistas reagem do mesmo modo que reagem a qualquer célula. O botão voltar, os deep links e as URLs compartilháveis vêm todos de graça.
$mol_state_arg expõe os parâmetros da URL como valores reativos. Vincule um a uma propriedade e a barra de endereços torna-se sua fonte de verdade:1namespace $.$${2export class $my_appextends$.$my_app{3@ $mol_mem4page(next?:string){5return $mol_state_arg.value('page',next)??'home'6}7}8}Ler page() retorna o valor atual; chamar page('about') navega. Tudo o que lê page() é renderizado de novo na mudança — inclusive o botão voltar do navegador, que atualiza a célula para você.
Combine um valor roteado com um simples switch para escolher o que renderizar. Como as vistas são preguiçosas, as telas que você não mostra nunca são construídas:1@ $mol_mem2body_content(){3switch (this.page()){4case 'about':return[this.About()]5case 'docs':return[this.Docs()]6default:return[this.Home()]7}8}
No view.tree, um link pode definir argumentos de URL de forma declarativa — clicar nele navega sem nenhum manipulador:1<= About_link $mol_link2 arg *3 page \about4 sub /<= about_label \About$mol_link também se marca como ativo (mol_link_current) quando seus argumentos correspondem à URL atual, então destacar a página atual não precisa de estado extra.