Le routage dans $mol n'est pas une bibliothèque séparée — l'URL n'est qu'un autre morceau d'état réactif. Lisez-la, écrivez-la, et les vues réagissent de la même manière qu'à n'importe quelle cellule. Le bouton retour, les liens profonds et les URL partageables sont tous gratuits.
$mol_state_arg expose les paramètres d'URL comme des valeurs réactives. Liez-en un à une propriété et la barre d'adresse devient votre source de vérité :1namespace $.$${2export class $my_appextends$.$my_app{3@ $mol_mem4page(next?:string){5return $mol_state_arg.value('page',next)??'home'6}7}8}Lire page() renvoie la valeur actuelle ; appeler page('about') navigue. Tout ce qui lit page() se re-rend au changement — y compris le bouton retour du navigateur, qui met la cellule à jour pour vous.
Combinez une valeur routée avec un simple switch pour choisir ce qui s'affiche. Comme les vues sont paresseuses, les écrans que vous n'affichez pas ne sont jamais construits :1@ $mol_mem2body_content(){3switch (this.page()){4case 'about':return[this.About()]5case 'docs':return[this.Docs()]6default:return[this.Home()]7}8}
Dans view.tree, un lien peut définir des arguments d'URL de manière déclarative — cliquer dessus navigue sans gestionnaire :1<= About_link $mol_link2 arg *3 page \about4 sub /<= about_label \About$mol_link se marque aussi comme actif (mol_link_current) lorsque ses arguments correspondent à l'URL actuelle, donc mettre en évidence la page courante ne nécessite aucun état supplémentaire.