クライアント側のJavaScript MVC(マイクロ)フレームワークはありますか?
私はかなり複雑なHTMLフォームを使用しており、MVCパターンの恩恵を受けるでしょう。
良い解決策は以下を提供すると思います:
- モデルとビューは、値が変更されるとコントローラーを更新します(オブザーバーパターン)
- ページが読み込まれたときにフォームデータからモデルにデータを入力する
- モデルが変更されたときにモデルからフォームに入力する
Ajax、彗星、JSONP、そしてそのすべてのジャズは深刻な過剰です。
クライアント側のJavaScript MVC(マイクロ)フレームワークはありますか?
私はかなり複雑なHTMLフォームを使用しており、MVCパターンの恩恵を受けるでしょう。
良い解決策は以下を提供すると思います:
Ajax、彗星、JSONP、そしてそのすべてのジャズは深刻な過剰です。
回答:
バックボーンは素晴らしい軽量フレームワークです。試してみてください:http : //backbonejs.org/
JavaScriptMVCは優れたソリューションです。すべてがプラグインアプローチであり、必要な機能のみを選択できます。2.0以降では、jQueryに基づいています。
JMVCが開発のための中間層を提供するだけなので、Webサイトを段階的に拡張することはユーザーに任されます。その設計を自分で選択するのはあなた次第です。
ただし、JavaScriptMVCは、強力なイベント委譲ベースのコントローラーがあるため、単に最も優れた汎用JavaScriptMVCライブラリです。
イベントの委任により、イベントハンドラーをアタッチする必要がなくなり、ページのルールを作成できます。
最後に、JMVCはMVCアーキテクチャ以上のものです。開発サイクルのすべての部分が含まれています。
SpineのAPIはBackboneに似ていますが、はるかに小さくなっています。プロトタイプの継承が特徴です。
AngularJSはjQueryと連携して機能し、MVC構造と問題の厳密な分離で多くのことを支援します。
完全なテスト環境と依存性注入が含まれています...
確かにあります: http //www.javascriptmvc.com/
これで十分だと思います!
これはあなたがチェックすべきもののように見えると思います:http : //knockoutjs.com/
(Silverlight / wpfプログラマーとして、これは私が最終的にjavascriptの学習を開始したライブラリでした。これは、Model-View-View-Model(MVVM)パターンに基づいています。今のところ、私は良い選択のようです!)
人気のあるBackbone.jsがあります
これらはEmberを使用する喜びにする3つの機能です。
バインディングを使用して、2つの異なるオブジェクト間のプロパティを同期させます。バインディングを一度宣言するだけで、Emberは変更が確実にどちらの方向にも伝播されるようにします。
2つのオブジェクト間にバインディングを作成する方法は次のとおりです。
MyApp.president = Ember.Object.create({
name: "Barack Obama"
});
MyApp.country = Ember.Object.create({
// Ending a property with 'Binding' tells Ember to
// create a binding to the presidentName property.
presidentNameBinding: 'MyApp.president.name'
});
MyApp.country.get('presidentName');
// "Barack Obama"
バインディングを使用すると、MVC(Model-View-Controller)パターンを使用してアプリケーションを設計し、データが常にレイヤー間で正しく流れることを理解しておくことができます。
計算されたプロパティにより、関数をプロパティのように扱うことができます。計算されたプロパティは、他のプロパティと同じようにバインディングを操作できるので便利です。
Emberは、セマンティックテンプレートライブラリであるHandlebarsを使用します。JavaScriptアプリケーションからデータを取得してDOMに配置するには、値を表示したい場所にタグを作成して、HTMLに配置します。
<script type="text/x-handlebars">
The President of the United States is {{MyApp.president.fullName}}.
</script>
要件が本当にシンプルな場合は、Alex Netkachovのような独自のシンプルなMVCを作成できます。。
彼の例はdojoに基づいて構築されています(注:dojo.jsファイルがないため、彼のページでは機能しません)が、単純なJavascriptのパターンに従うことができます。
それはおそらく必要なものに対してはやり過ぎですが、SproutCoreはMVCフレームワークであり、JavaScriptMVCまたはTrimPathのJunctionよりも重く見えることはありません。
残念ながら、これらはいずれも段階的な拡張の原則に基づいて構築されているようには見えません。
jquery-claypoolもチェックアウトしてください。
jquery-claypoolは、django、rails、springなどでの私の経験に基づいて、jqueryに基づいて構築された小さく高速でレール可能なmvcフレームワークです。非常に軽量で、クライアント環境とサーバー環境の両方で実行されます。
クリーンなmvc、カテゴリロギング、フィルター(aop)、コントローラーの遅延作成、制御の反転、コンベンションオーバーコンフィグレーションなどのルーティングフレームワークを提供します。
jqueryが既に行っていることは何もせず、jqueryのように感じ、優れたフレームワークのように機能します。
ぜひご覧ください。
ジャマルは私が見た中で最も軽量です。また、jQuery(ボーナス)に基づいています。使用していません。
物事を管理し、非常にシンプルにしたい場合は、フレームワークは必要なく、独自のmvcパターンを実装するだけです。この記事を確認してください:2006年のAlex NetkachovによるJavaScriptを使用したModel-View-Controller(MVC)。
これは、人類に知られているすべてのオープンソースのJavaScriptフレームワークのリストです。
http://getopensource.info/explore/javascript/framework/
またはMVCフレームワークのみ
http://getopensource.info/explore/javascript/mvc/
開示:私はこのウェブサイトの開発者です。
UPDATE 2016:Sammy.jsが破棄されたようです。
サイトからのテキスト:
クラスの小さなwebframework。
これをマイクロフレームワークとは呼びませんが、確かに興味深いように見えます。カプチーノWebフレームワーク
私はAngularJSに賛成しました(完全な開示、私は限られた方法で角度のある開発の取り組みに関与しています)。私は、内部プロジェクトの1つの機能(共有するためのサインオフはありません)を使用して、AngularJSとBackboneの両方に実装する比較を行いました。それは素晴らしいエクササイズでした、そして結局、私は非常にAngularに傾いています。コア開発者は質問への回答に優れており、組み込みのデータバインディング、ユニット/ e2eテスト、およびドキュメントを使用して、本当に素晴らしい仕事をしました。まだベータ版で、1.0は近い将来にリリースされます。ベータ版は非常に安定しています。
パラダイムシフトが少しあり、彼らはほとんどとはかなり異なるアプローチを使用しています。お気に入りのjqueryプラグインの統合には少し手間がかかりますが、実行可能であり、完了しています(githubのAngular Contrib)。
私は言います(そしてこれはほとんどのjs中心のフレームワークにとって問題です)、あなたのコンテンツをSEOフレンドリーにする方法を必ず調べてください(それがあなたにとって重要である場合)。6月にアンギュラーコミュニティに参加して以来、関心が高まっていることに気づき、多くの人々がバックボーンやその他を見てきたが、Angularに表示されているものを本当に気に入っていると投稿しています。
Maverickは小さなJavaScript MVCフレームワーク— http://maverick.round.ee
ここでもパイプを つないでいきます-AFrameJSはjQuery、MooTools、Prototypeで動作します。
もう1つ:MooTools-MVC
AppleのCocoaバインディングに触発された「Coherent」と呼ばれるキー値バインディングJavaScriptフレームワークがありました。フレームワークはAppleによって購入されましたが、古いコピーがまだhttp://github.com/trek/coherentjs/tree/masterにあります。
このjQueryベースのJavaScript MVCフレームワークを試してください。
もう1つ、軽量で小さな:http : //jqnano.oleksiy.pro/
Can.jsには必要なものがすべて含まれており、わずか8 KBです。JavaScriptMVCから最高のビットを取り出し、オブザーバー、ウィジェット、バインディング、機能を備えた1つの小さな、しかし重要なフレームワークにそれを抽出しました。主要なフレームワーク( jQuery、 Dojo Toolkit、 MooToolsなど)と互換性があります。ドキュメンテーションは優れており、作成者は応答性があります。それは間違いなく一見の価値があります。