Backbone.Routerを使って画面遷移を制御してみる
最終更新日:2015-08-02
Backbone.Routerを使うと、シングルページのWebアプリケーションで画面遷移を実現できます。
次の4ステップで、Backbone.Routerを使って画面遷移を実現します。
- Backbone.Routerを拡張したクラスを作成する。
- 作成したクラスのインスタンスを作成する。
- 画面遷移のサポートを開始する。
- 画面遷移のリクエストを実行する。
順に見ていきましょう。
Backbone.Routerを拡張したクラスを作成する。
Backbone.Router.extend()で、クラス(コンストラクタ関数)を作ります。引数オブジェクトのroutesで、どのURLパターンの時、どの関数が実行されるかの対応を記述します。
var AppRouter = Backbone.Router.extend({
routes : {
"" : "top",
"main" : "main",
"item(/:id)" : "showItem"
},
top : function() {
// top画面を表示する処理をここに記述
},
main : function() {
// メイン画面を表示する処理をここに記述
},
showItem : function(id) {
// パスパラメータは引数で渡される
}
});
(/:id)のように、(/:名前)をつけると、そのセグメントを変数として取り出すことができます。
作成したクラスのインスタンスを作成する。
AppRouterはコンストラクタになるので、これを用いてwindow.onloadあたりでオブジェクトを作成します。
var router;
$(function() {
router = new AppRouter();
});
画面遷移のサポートを開始する。
Backbone.Routerオブジェクトをnewで作成した後、Backbone.history.start()で画面遷移のサポートを開始します。
var router;
$(function() {
router = new AppRouter();
Backbone.history.start();
});
画面遷移のリクエストを実行する
画面遷移は、ではなくBackbone.Routerオブジェクトのnavigate()を呼ぶことで行います。
router.navigate('main', {trigger:true});