ルーティングは、アプリケーションの状態を整理および管理する方法です。JavaScript のルーティング フレームワークは、アプリケーションの永続性を維持しながら、アプリケーションの状態を変更するのに役立ちます。たとえば、ある管理パネル セクションから別の管理パネル セクションに移動することができます。
たとえば、あるアプリケーションの状態/admin/users
から別の状態に移動/admin/orders
する場合は、通常のリンクを使用できます。しかし、その後、ブラウザをある HTML ページから別の HTML ページに移動させます。これは明らかに、Web をナビゲートする通常の方法です。しかし、JavaScript アプリケーションでは、これはかなり非効率的です!
JavaScript で複雑なブラウザー内アプリケーションを実行している場合、そのアプリは起動時に多くの作業を行う必要があります。イベント ハンドラーを登録し、一連の JavaScript を読み込んで実行し、場合によってはページ インターフェイス全体を動的にレンダリングします (ExtJS や他のいくつかのライブラリの場合)。/admin/orders
にある JavaScript アプリケーションと多くの共通点を持つJavaScript アプリケーションを にセットアップするのは、ブラウザにとって余分な作業です/admin/users
。より効率的な方法は、リンクがアプリケーションが監視するイベントを発生させ、アプリケーションがアプリケーションの状態を変更することによって応答することです。おそらく、ユーザー ビューを削除または非表示にして、それを注文ビューに置き換えることによってです。ルーティングは、トークン (通常は次のような URL フラグメント) を使用して、これらのさまざまなインターフェイスを表す方法です。/admin/users
-- ユーザーがインターフェイスのどこにいるかを追跡します。
これにより、アプリケーションは、作成に時間とメモリを消費した動的オブジェクト モデルを維持できます。これにより、ユーザー インターフェイスの応答がより速くなり、ハッシュタグまたは pushState を介して URL 履歴管理を使用している場合、ユーザーはブラウザーの [戻る] ボタンと [進む] ボタンを使用してアプリ内を移動できます。毎回ページを開き、アプリケーションの状態を消去します。URL 管理では、アプリケーション内の一部のページへのディープ リンクも可能です。ロード時に、アプリのルーターは、受信したルート文字列を調べてトークン化し、ルーティング テーブルで指定したインターフェイスをロードします。
永続性を管理するためにルーティングは必須ではありませんが、永続的な状態を整理する良い方法です。多くの場合、ルーティング システムは、Davis.js などの URL 履歴管理と密接に関連しています。しかし、 Crossroads.jsのように、URI をいじらず、必要に応じて使用または表示できる抽象的なトークン化された状態を維持するルーティング ライブラリもあります。