現在、バックボーン マリオネット アプリを作成しています。これは最終的に約 6 つの異なる「画面」またはページになり、コンテンツを共有することが多く、リージョンを最適に構造化してアクセスする方法がわかりません。
ここで説明されているアプリ/モジュールのセットアップを使用しています: StackOverflow question 11070408: How to define/use several routings using backbone and require.js . これは、時間の経過とともに新しい機能とコンテンツが追加され、スケーラブルである必要がある (そして明らかに可能な限り再利用可能である) アプリケーションになります。
私が構築しているシングル ページ アプリには、すべての画面に、ヘッダー、プライマリ コンテンツ、セカンダリ コンテンツ、フッターの 4 つのプライマリ セクションがあります。
フッターはすべてのページで一貫しており、ヘッダーは 3 ページで同じで、残りの 3 ページではわずかに変更されています (同じ要素/コンテンツの約 80% を使用)。「morecontent」領域は、さまざまなページで再利用できます。
私の app.js ファイルでは、次のようにリージョンを定義しています。
define(['views/LandingScreen', 'views/Header', 'router'], function(LandingScreen, Header, Router) {
"use strict";
var App = new Backbone.Marionette.Application();
App.addRegions({
header: '#mainHeader',
maincontent: '#mainContent',
morecontent: '#moreContent',
footer: '#mainFooter'
});
App.addInitializer(function (options) {
});
App.on("initialize:after", function () {
if (!Backbone.History.started) Backbone.history.start();
});
return App;
});
さて、前述の投稿のアプリのセットアップを参照すると、リージョンを処理するための最良の方法は何でしょうか. 各サブアプリの各リージョンを個別に再宣言しますか? これは、モジュールをできるだけ独立した状態に保つための最良の方法のようです。そのルートに行く場合、サブアプリ間でこれらの領域を開閉または非表示/表示する最良の方法は何ですか?
または、app.js で宣言されたリージョンを保持する必要がありますか? もしそうなら、どのようにサブアプリからそれらの地域のイベントを変更し、調整するのが最善でしょうか? app.js ファイルで定義されたリージョンを持つことは、どのモジュールとコアアプリがお互いについて知っているかを最小限に抑えるのに直感に反するようです。さらに、私が目にするすべての例には、メインのアプリ ファイルに appRegions メソッドがあります。サブアプリからこれらのリージョンにアクセスして変更するためのベスト プラクティスは何ですか?
前もって感謝します!