読者です 読者をやめる 読者になる 読者になる

ほんとのこと知りたいだけなのに。

夏休みはもうおわり。

Riot.js の Router

Router を利用してみようと思いAPIマニュアル を眺めるも動かない。
URLが変更されたときに動かない感じ。

APIを表にしてみる。

全体俯瞰すれば見えてくるもんもあるかと思い表にしてみる。

api description version
riot.route(callback) URLが変更されると、与えられたcallbackを実行する。 ---
riot.route(filter, callback) URLが変更された際、filterに一致すれば、与えられたcallbackを実行する。 >= v2.3
riot.route(to[, title]) ブラウザのURLを変更して、riot.route(callback)で登録されたすべてのリスナに通知する。 ---
riot.route.create() 新しいサブ・ルータを返す。 >= v2.3
riot.route.start() URL変更の検知を開始する。 ---
riot.route.stop() URL変更検知を停止。全てのコールバックをクリアする。 ---
subRoute.stop() サブ・ルータを停止して、全てのコールバックをクリア。 >= v2.3
riot.route.exec(callback) 現在のURLを調べて、与えられたcallbackをURL変更なしに「その場で」実行する。 --- (2.3から非推奨)
riot.route.query() URLからパラメータを取り出すときに便利な関数。 >= v2.3
riot.route.base(base) ベースパスを変更する。 ---
riot.route.parser(parser) デフォルトパーサーを独自のものに変更する。 ---

これだけ眺めると問題ある感じがしない。
しかし動かない。

サンプルがないか探ってみる。

examples/router-page-switcherがあった。
これが動いたのでこれを手掛りに進められそう。

以下のように riot.compile で包んでいる。これがないとイカンのかな。
APIマニュアル に書いといてほしいものである。

<script>
   riot.compile(function() {
     riot.mount('app')
     riot.route.start(true)
   })
</script>

おわり

そもそもルーターが自体がよく理解できていない。
フロント側はまだまだ勉強が必要な様子。