10

私はこのトピックが主観的になる可能性が高いことを知っているので、私が取り組んでいる私の特定のWebアプリケーションに関するものではありません。いつJavaScriptでMVCフレームワークを使用する必要がありますか?

JavaScriptの場合、私はBackbone.jsのようなMVCライブラリでは扱っていませんが、ロジックとビューのデカップリングの利点があります。一方で、フレームワークを学び、それを利用するためにアプリケーションを適応させるのは時間の問題かもしれません。さらに、JavaScriptのすべてのビューを処理することはSEOを非常に困難にしているようです。

Backbone.jsやWebアプリケーションのコンセプトに似たフレームワークを使用することが理にかなっているのですか?決定には何がありますか?

質問をより客観的にするための助けを歓迎します。

+0

Underscore.jsには他の言語のポートがあるようです。私の無知を許しますが、UnderscoreとMVCとは何が関係していますか?それはいくつかのユーティリティ機能を追加するように見えるだけです。 –

+0

JavaScript Webアプリケーションの[モデル](http://backbonejs.org/#Model)と[ビュー](http://backbonejs.org/#View)を提供します。あなたはそれほどフレームワークではなく、より多くのツールセットです。しかし、私は完全にそれに取り組んでいない。ここには[Backbone.jsと伝統的なMVC](http://backbonejs.org/#FAQ-mvc)に関する記事があります。 – danijar

+2

初めてMVCをjavascript..angular、underscore、backboneのいくつかの例で適用できることがわかったときに私は完全に驚いていました...しかし、それは私にとって大きな疑問符です...それについての良い説明は多くの人々を助けるでしょう。 –

答えて

7
を行うことができます

多くのクライアントサイドのJavaScriptのMVC(MV *)フレームワークがあります。ほとんどの場合、MVCとは何か、Webアプリケーションとどのように連携しなければならないか、という考え方が異なるようです。

クライアントサイドのJavaScriptの複雑さが管理しづらい場合、MV *フレームワークを考慮する必要があります。バックエンドとの多くの非同期通信を行う非常に動的なシングルページアプリケーション(SPA)を構築しているチームであれば、それを考慮する必要があります。そうでなければ非常に面倒なjavascriptコードで終わるのは簡単です。

MV *フレームワークは、次の1つ以上の方法であなたを助ける:

  • コードを構造化する方法を定義することによって。これはフレームワークがどのように意見を出しているかに応じて様々な程度に行われます。たとえば、バックボーンはフレームワークではなくライブラリとみなされるため、モデルにhtmlをバインドすることによって、ユーザーに意思決定をより多く委ねることができます。
  • だから、
  • (単一ページのアプリケーション用)などURL履歴として便利な機能を提供することにより、
  • あなたのデータはページが自動的に更新されます変更する(またはその逆)の場合と検証
1

あなたはMVC構造は、エンティティが異なる目的MVC構造を使用することができるようにエンティティ内のプロパティを簡単にするために維持されるように、主に各フォームフィールドに焦点を当て underscore.jsおよび他の類似のライブラリと backbone.jsを使用してジャバスクリプトに含めることができる知っています操作はJavaScript でこれらのイベントバインディング、DOM操作のための良い構造、シリアライズなど

それはjavascriptのためのMVCやMVVM構造かどうか、適切な構造が選んだため、アプリケーションの目的に依存します。 MVVM構造は、angular.jsまたはknockoutjsまたはビューコンポーネントへの動的バインディングのための他のライブラリを使用することができます。
MVVMアーキテクチャは、リロードやajaxを使わずにフォームフィールドバインディングを維持するのに便利です。 jsと私のアーキテクチャはほんの数点を指摘しています。例えばのための

Serialize form inputs to JSON using Backbone.js

この例では、フォームの値をモデルとして取得されているし、それを操作することができ、ビジネス・ロジックを追加することができ、結合、シリアライズやイベントにすることができ、印刷または任意のもの

7

私はそれはあなたのプロジェクトに依存だと思います。ここでは、フロントエンドMV *フレームワークを使用すべきかどうかを決めるのに役立つチェックリストを示します。 AJAXリクエストの

  • 多くは、フルページのリロードを必要としない、あなたの機能の
  • 多くをバックエンドに。コメント、ページネーション、または無限のスクロールを追加する。
  • バックエンドにモデル/ REST APIがあります。フロントエンドで同じ構造を複製/使用することができます。
  • 異なるページ間でロジック/ドミノの操作機能を共有しています。

これ以上ポイントが見つかると、さらに追加します。これは私が今考えることができ、これは完全なリストではありません。どんな提案も大歓迎です。

関連する問題