Маршрутизація в $mol — не окрема бібліотека: URL — це просто ще один шматок реактивного стану. Читайте його, записуйте — і подання реагують так само, як реагують на будь-яку комірку. Кнопка «назад», глибокі посилання й посилання, якими можна ділитися, — усе це задарма.
$mol_state_arg надає параметри URL як реактивні значення. Прив'яжіть один до властивості — і адресний рядок стане вашим джерелом істини:1namespace $.$${2export class $my_appextends$.$my_app{3@ $mol_mem4page(next?:string){5return $mol_state_arg.value('page',next)??'home'6}7}8}Читання page() повертає поточне значення; виклик page('about') виконує перехід. Усе, що читає page(), перемальовується при зміні — зокрема й кнопка «назад» браузера, яка оновлює комірку за вас.
Поєднайте маршрутизоване значення зі звичайним switch, щоб вибрати, що малювати. Оскільки подання ліниві, екрани, які ви не показуєте, ніколи не будуються:1@ $mol_mem2body_content(){3switch (this.page()){4case 'about':return[this.About()]5case 'docs':return[this.Docs()]6default:return[this.Home()]7}8}
У view.tree посилання може встановлювати аргументи URL декларативно — клік по ньому виконує перехід без обробника:1<= About_link $mol_link2 arg *3 page \about4 sub /<= about_label \About$mol_link також позначає себе активним (mol_link_current), коли його аргументи збігаються з поточним URL, тож підсвічування поточної сторінки не потребує додаткового стану.
Аргументи незалежні, тож екран може маршрутизуватися за кількома одразу. Саме цей сайт документації маршрутизується і за section, і за page:1<= Guide_link $mol_link2 arg *3 section \docs4 page \viewsКожен ключ здійснює повний обіг через URL, тож будь-яке подання за побудовою можна поширювати й додавати в закладки. Встановлення одного аргументу лишає інші недоторканими, що робить глибокі посилання — конкретний розділ і сторінку і якір — лише питанням встановлення потрібних вам ключів.Редагувати цю сторінку на GitHubЦе було корисно?ТакНіНазадСтан і реактивністьДаліРендерингНа цій сторінціURL як станПеремикання екранівПосилання, що встановлюють аргументиКілька параметрівСтан, якому не місце в URLДаліType to search the documentation.