手探りだから正解が分からないけども
別に1つの関数内で全画面の構築しなくても
View生成ごとに関数作ってファイルも分けたらいいよ

on_route_changeの中では@observableで作ったrouteに移行先のルート入れるだけにして 
page.render_viewsで呼んだ関数でuse_stateして再レンダリングで@observable変数のroute見て各View関数呼ぶ