6

私はバックボーンに不慣れで、現在の webapp プロジェクトを構築する方法を理解するために少し助けを求めるためにここにいます。サーバー用のモジュラー管理パネルを開発しています。パネルのすべての「ページ」は、コントローラー、モデル、ビューを含むパッケージ化された「モジュール」である必要があります。

パネルは、最初に読み込まれるメイン レイアウト ビューと、基本的なナビゲーションで構成されます。ユーザーがナビゲーションのリンクをクリックすると、AJAX を介してページがレイアウトに読み込まれます。(そして、これがばかげているように聞こえる場合/そうしない理由がある場合は、教えてください:))

他の人もこれらのページを開発し、それらはモジュール式であるため、AJAX を介してロードしたページ内にどのモデル、ビュー、およびコントローラーが表示されるかわかりません。

バックボーンでこれを行うにはどうすればよいですか?

バックボーン モデルなどを動的に拡張する方法と、(たとえば) ユーザーがページを離れたり、後で再訪問したりする方法について特に疑問に思っています。

Backbone は、私が作業できるものを提供してくれますか?何か一緒にハックする必要がありますか?欠けていることを行うためのより良い方法はありますか?

4

4 に答える 4

2

問題についてのあなたの考えは非常に正しいように聞こえます。UIコンポーネントを可能な限り自己完結型にします。この10分間のビデオを見て、UIコンポーネントのベストプラクティスに関する詳細情報を入手してください。

JavaScriptアプリケーション開発の他の重要な懸念事項に興味がある場合は、私の経験を共有するために公開したBoilerplateJSリファレンスアーキテクチャをご覧ください。これには、説明したのと同様のサンプルアプリケーションが含まれています(コンポーネントのアクティブ化を含むメニュー)。

UIコンポーネントのアクティブ化、非アクティブ化に関する私の推奨事項は次のとおりです。

  • DOMコンポーネントを削除/作成しないでください。DOMから削除した後でも要素がメモリ内に残るため、非表示/表示で再利用します
  • クライアント側での「状態」情報の保持を最小限に抑えます。ユーザーがコンポーネントに再度アクセスしたら、サーバー呼び出しでコンポーネントを更新してから表示します(サーバーを状態情報の単一の真理として使用します)。

詳細については、BoilerplateJSのサンプルコンポーネントの実装を参照してください。BackboneJSで使用している人はほとんどいません(現在、knockoutJSに同梱されています)。1週間以内に予定されているv0.2のBackboneJSを使用した例を出荷します。

于 2012-09-17T05:14:51.940 に答える
2

バックボーンと組み合わせて使用​​される一般的なモジュラー スクリプト ロード フレームワークは、require.js です。それはあなたが探しているものかもしれません。Require.js は、AMD モジュール、非同期モジュールに関するものです。通常、各モデル、コレクション、ビューは、特定のモジュールが必要とする依存関係を定義し、必要に応じてそれらのモジュールをロードする独自のモジュールです。これは、アプリケーションのさまざまなポイントで一緒に組み合わせる必要がある個々のピースが多数ある大規模なプロジェクトに特に適しています。

もちろん、複数のバックボーン要素を 1 つのモジュールに結合することもできます (通常、これはビューと、親ビューでのみ使用される特定のサブビュー用に予約されています) が、それは本当にあなた次第です。

バックボーンでは、通常、単一ページのアプリケーションを作成することを目的としています。つまり、すべてのページの足場は通常、単一のファイルとしてラップされ、最初からクライアント側に完全にロードされます。次に、各ページのデータが ajax 経由で呼び出され、ユーザーがアプリケーションのさまざまな側面をナビゲートしてロードすると、データが取り込まれます。これはあなたの説明で意図したものですか?

サーバーから個別に取得されたさまざまなページを読み込もうとしている場合、Backbone が答えであるかどうかはわかりません。それを実現するのに役立つ他のサーバー側 MVC フレームワークがあります。

これは、一般的に、この種の目的で Backbone がどのように使用されるかについて触れています。

Backbone モデルなどを拡張する方法については、Backbone は Underscore を依存関係として使用し、underscore は、_.extend()すべてのオブジェクトをほぼ任意の方法で簡単に拡張できる優れた機能を提供します。デフォルトの機能をオーバーライドし、ミックスインを投入することは、バックボーンに関する限り、すべて非常に簡単です。フレームワークとして、バックボーンは、あらゆる部分の変更、修正、カスタマイズに関して非常に快適です。

ユーザーのページへのアクセスと再アクセスの処理に関してBackbone.routerは、アプリ内の特定の「ページ」を指すだけでなく、そこに到達するために実行する必要がある任意のコードを実行する URL を作成できます。ログインしたユーザーが「mysite/#account」にアクセスすると、ルーターがトリガーされ、その特定のビューを表示する特定のスクリプトとfetch()、ユーザーのためにそのビューを起動して実行するためにおそらく必要なデータが読み込まれます。

ある種の基本的な構造を提供するリソースがそこにあるかどうかはわかりません. 私が知っているほとんどの経験は、「​​Todo リスト」のような基本的なチュートリアルを経て、そこから上に向かっていく傾向があります。あなたの JavaScript やプログラミング全般の経験レベルはわかりませんが、ほとんど何も知らなかったときに Backbone AND require から始めました。JSON が何であったかについての漠然とした概念と、「Web ページを取得するのはそれである」などの HTTP の低レベルの理解のみです。とは言っても、Backbone は私にとって非常に簡単に入手でき、クライアント側の RESTful タイプのアプリ構造全体についての知識を深めることができたと思います。

Backbone や Knockout など、さまざまな種類の "Todo List" アプリの本当に優れたリストがあります。フレームワークを決定するとき、私は基本的に利用可能なすべての異なるフレームワークを比較してそのコードを調べ、Backbone を選択しました。後悔はしていません。とても楽しいので、デモ チュートリアルを試してみるのが一番いい方法だと思います。

于 2012-09-16T17:29:30.007 に答える
1

マリオネットまたはチャップリンを見てください。どちらもバックボーン上に構築されており、バックボーンを使用してより大きなアプリケーションを構築するための構造化された方法を提供します。

于 2012-09-16T17:27:38.013 に答える
0

backbonejs を使用してアプリケーションをモジュールとして編成するためのチュートリアルを次に示します。

http://backbonetutorials.com/organizing-backbone-using-modules/

于 2012-12-19T08:56:01.600 に答える