3

私はノックアウト js を学び始めており、1000 人のユーザーと 1000 のエントリを処理するような中規模のアプリケーションを構築することを計画しています。ノックアウト js アプリケーションの js ファイルをどのように構成しているのでしょうか。のような従来の MVC ファイル構造のようなものです。

ライブラリ/

アプリ/

アプリ/モデル/

アプリ/ビュー/

アプリ/コントローラー/

それとも別の構造ですか?

4

1 に答える 1

3

アプリケーションを構築する「正しい」方法がないため、これは非常に自由回答の質問のように思えます。また、アプリケーションのサイズが異なれば、異なる構造から得られるメリットも異なります。いくつかのモデルしかなく、フォルダーはまったく必要ない場合があります。いくつか必要です。とにかく、私の答えに進みます。

ノックアウトについて具体的に質問しているため、これは、サーバーのコードではなく、クライアント側の JavaScript のみを使用していることを前提としています。アプリケーション構造全体について話している場合は、質問でこれを明確にしてください。

まず、Knockout にはコントローラーがありません。ビューモデルがあります。これはセマンティックな違いのように思えるかもしれませんが、実際にはそうではありません。コントローラーは比較的愚かです。ビューからモデル内のビジネス ロジックにアクションをルーティングします。一方、ViewModel はスマートです。これらには、ビジネス ロジックと、ビューが使用するパブリック プロパティおよびメソッドが含まれています。

モデルは通常、Knockout 側の一部ではありません。それらはサーバー上にあり、データベース テーブルを表します (これは一般化であり、明らかに例外が存在します)。controllerこれらの両方で、ディレクトリとディレクトリを削除し、modelディレクトリが残りviewmodelsます。

ビューはよりトリッキーです。ビューは HTML ですが、再利用したい場合はノックアウト テンプレートにすることもできます。「ビュー」と「テンプレート」を分離するために、このディレクトリを と呼びますtemplates

lib最後に、これをディレクトリに配置しません。アプリケーション自体はライブラリではありません。それはアプリケーションです。これらはすべて public javascript フォルダーの下にあるはずですが (Web からアクセスする必要があるため)、ツリーをさらに下に移動する理由がわかりません。確かにlib、他のプラグイン用のディレクトリが必要になりますが、これは Knockout アプリケーションで使用されるためlib、アプリと同じレベルにある必要があります。

于 2012-07-25T18:09:02.320 に答える