7

私は今、コードをよりスケーラブルで管理しやすい方法で整理したいと思っています。フレームワークを使用せずに、JavaScriptのMVCアーキテクチャをよりよく理解したいと思います。

だからこれは私がこれまでに理解していることです(私が間違っている場合は私を訂正してください):

モデル:サイト/ウェブアプリのコンテンツ(写真、コピー、ダウンロード可能なコンテンツなど)の組織化された構造であり、コンテンツの操作に必要なロジックもあります。したがって、JavaScriptでは、モデルはJSONオブジェクト、またはデータベースを取得/更新するphpファイルの呼び出しであり、モデルのロジックは、コンテンツの解析、正規表現、および整理を担当する関数である可能性があります。ビューにオフ?

ビュー:ユーザーインターフェイスとモデルのデータ/コンテンツの視覚的表現。その唯一の仕事は、コンテンツを表示し、該当する場合はユーザー入力を受け入れることですか?

コントローラー:コントローラーだけの仕事は、モデルとビューの間の仲介役として機能することですか?たとえば、ビューにデータが必要な場合、コントローラーにデータを取得するためにモデルに移動し、それをビューに送り返すように依頼しますか?ユーザー入力がある場合、ビューはそれをコントローラーに送信し、コントローラーはそれをモデルに送信します。モデルは更新され、その時点でコントローラーはモデルが更新されたことをビューに通知しますか?

MVCは、これまでも今も私にとって混乱のポイントであり、MVCはjavascriptでは自然に正確なものではないと述べられているという事実と組み合わされています(少なくともphp、java、actionscriptなどとは異なります...)

4

2 に答える 2

9

最初の真実は、ほとんどの場合、View と Controller は非常に近いということです。時には同じことさえあります。そして、それは必ずしも悪いことではありません。テーブルがある場合は、行を選択し、選択した行のデータを変更するボタンをクリックします。ボタンは明らかにビュー (データが表示されます)コントローラー (データを変更します) の一部になります。これにはもっと良い例があります、私は確信しています...

2 つ目の真実は、MVC については人の数とほぼ同じ数の意見を見つけることができるということです ;)

しかし、個人的には、デザインパターンにむやみに従わないことをお勧めします。MVC はコードを設計するための出発点として適していますが、最終的には、コードが高速で安定し、保守可能である必要があります。そして、あなた (およびあなたのチーム) は、コードに慣れている必要があります。MVC パターンに従ったコードになった場合は問題ありません。そうでない場合も問題ありません。少なくともそれが私の見解です。

于 2012-04-18T15:14:48.790 に答える
7

コードを見ることは私が学ぶための最良の方法であったので、私はこれらを共有すると思いました。

多くの異なるJSMV*フレームワークを比較するTODOMvc

上記のリンクは、すべてのJSmv*フレームワークを比較しています。このデモは特に興味があるはずです、

Vanilla JS Todomv*の実装

ソース

その音から、MVCが何であるかを理解し、JSでそれを実装する方法について混乱しているだけです。そこにある多くの異なるフレームワーク(ember.jsbackbone.jsなど)とそれらのソースを見て、それらを理解してください。その上に。ToDoリストは素晴らしい出発点です。

于 2012-04-18T15:11:21.810 に答える