クライアント側のJavaScript [〜#〜] mvc [〜#〜] (マイクロ)フレームワークはありますか?
かなり複雑なHTMLフォームがあり、MVCパターンの恩恵を受けるでしょう。
良い解決策は以下を提供すると思います:
Ajax、comet、 [〜#〜] jsonp [〜#〜] そして、すべてのジャズは深刻なやり過ぎです。
バックボーンは優れた軽量フレームワークです。試してみてください: http://backbonejs.org/
JavaScriptMVC は優れたソリューションです。すべてがプラグインアプローチであるため、必要な機能のみを選択できます。 2.0の時点では、jQueryに基づいています。
JMVCは開発のための中間層を提供するだけなので、Webサイトを段階的に強化することはユーザーに任されています。その設計を自分で選択するのはユーザー次第です。
ただし、JavaScriptMVCは強力なイベント委任ベースのコントローラーであるため、単に最高の汎用JavaScriptMVCライブラリです。
イベント委任を使用すると、イベントハンドラーをアタッチする必要がなくなり、ページのルールを簡単に作成できます。
最後に、JMVCはMVCアーキテクチャ以上のものです。開発サイクルのすべての部分をカバーしています:
Spine はBackboneに似たAPIを持っていますが、はるかに小さいです。プロトタイプの継承が特徴です。
AngularJSはjQueryと連携して動作し、MVC構造と懸念事項の厳密な分離に役立ちます。
完全なテスト環境と依存性注入が含まれています...
http://angularjs.org で確認してください
確かにあります: http://www.javascriptmvc.com/
これで十分だと思います!
これはあなたがチェックアウトすべきもののように見えると思います: http://knockoutjs.com/
(silverlight/wpfプログラマーとして、これは私がついにjavascriptを学び始めたライブラリでした。Model-View-View-Model(MVVM)パターンに基づいています。
人気のある Backbone.js があります
これらはEmberを使用する喜びを作る3つの機能です。
バインディングを使用して、2つの異なるオブジェクト間のプロパティを同期させます。バインディングを1回宣言するだけで、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>
要件がreallyシンプルな場合、 Alex Netkachov のように独自のシンプルなMVCを書くことができます。
彼の例はdojo上に構築されています(注:dojo.jsファイルがないため、彼のページでは機能しません)が、プレーンなJavaScriptのパターンに従うことができます。
それはおそらくあなたが必要とするものにとってはやり過ぎですが、SproutCoreはMVCフレームワークであり、それ以上の重量はありませんJavaScriptMVCまたはTrimPathのJunction。
残念ながら、これらのどれも プログレッシブエンハンスメント の原則に基づいて構築されているようには見えません。
人気のActionScript MVCフレームワーク PureMVC は、最近JavaScriptに移植されました。まだ試してみる機会はありませんが、良いと確信しています。
jquery-claypool もチェックアウトしてください。
jquery-claypoolは、Django、Rails、springなどでの私の経験に基づいて、jqueryに基づいて構築された小さく、高速で、レール可能なmvcフレームワークです。その非常に軽量で、クライアント環境とサーバー環境の両方で実行されます。
これは、クリーンmvc、カテゴリロギング、フィルタ(aop)、コントローラの遅延作成、制御の反転、設定の変更など、設計によるルーティングフレームワークを提供します。
jqueryが既に行っていることは何もせず、jqueryのように感じられ、優れたフレームワークのように動作します。
ぜひチェックしてください。
Jamalは私が見た中で最も軽量です。また、jQuery(ボーナス)に基づいています。使用していません。
kitty を試してください。それはわずか1.4 KBであり、その唯一の依存関係はEJSです。
以下は、人類に知られているすべてのオープンソースJavaScriptフレームワークのリストです。
http://getopensource.info/explore/javascript/framework/
または、MVCフレームワークのみ
http://getopensource.info/explore/javascript/mvc/
開示:私はこのWebサイトの開発者です。
物事を制御し、非常にシンプルに保ちたい場合、フレームワークは必要ないかもしれませんが、あなた自身のmvcパターンを実装するだけです。次の記事を確認してください: JavaScriptを使用したModel-View-Controller(MVC) 2006年のAlex Netkachovによる.
2016年更新:Sammy.jsは放棄されたようです。
サイトからのテキスト:
クラスを持つ小さなウェブフレームワーク
リストをもう少し完全にするために: ActiveJS
私はAngularJSを支持しました(完全な開示、angular devの取り組み)に限られた方法で関わっています)、それについて非常に興奮しています。内部プロジェクトのために(申し訳ありませんが、共有するためのサインオフはありません)、AngularJSとBackboneの両方で実装します。これは素晴らしい練習でした。質問があり、組み込みのデータバインディング、ユニット/ e2eテスト、ドキュメントで本当に素晴らしい仕事をしましたが、まだベータ版であり、1.0は近い将来にリリースされます。
パラダイムシフトが少しあり、ほとんどのアプローチとはかなり異なるアプローチを使用します。お気に入りのjqueryプラグインの統合には少し手間がかかりますが、実行可能であり、完了しています(githubのangular-contrib)。
私は言います(これはほとんどのjs中心のフレームワークの問題です)、コンテンツをSEOフレンドリーにする方法を調査してください(あなたにとって重要な場合)。 6月にangularコミュニティに参加して以来、関心が高まっていることに気付き、多くの人がBackboneや他の人を見ているが実際に見ているものが好きだという投稿をしている角度で。
[〜#〜] mcv [〜#〜] という非常にシンプルなJavascript MVCフレームワークを開発しました。それはあなたが求めるものを正確には行いませんが、ヘルパーで簡単に拡張できます。とにかく、それは間違いなくマイクロ(1,9kbパック)です。
それは多かれ少なかれジャマルのように機能しますが、私は2つの理由で自分のものをロールバックすることにしました:
私はこれをmicro-frameworkとは呼びませんが、確かに面白いように見えます: Cappuccino Web Framework
CorMVC、理解しやすく、使いやすい、jqueryベースで、サーバーテクノロジーに依存しない
Can.jsは必要なものがすべて揃っており、わずか8 KBの重さです。 JavaScriptMVCから最高の部分を取り出して、オブザーバー、ウィジェット、バインディング、ワークスを備えた1つの小さいながらもキックフレームワークに抽出しました。主要なフレームワークと互換性があります( jQuery 、 Dojo Toolkit 、 MooTools など)。ドキュメンテーションは素晴らしく、著者は敏感です。それは間違いなく一見の価値があります。
ここでもパイプを使用します- AFrameJS はjQuery、MooTools、Prototypeで動作します。
別の1つ: MooTools-MVC
Maverickは小さなJavaScript MVCフレームワークです- http://maverick.round.ee
AppleのCocoa Bindingsに触発された「Coherent」と呼ばれるKey-ValueバインディングJavaScriptフレームワークがありました。フレームワークはAppleによって購入されましたが、 http://github.com/trek/coherentjs/tree/master にはまだ古いコピーがあります。
これを試してください jQueryベースのjavascript MVCフレームワーク 。
もう1つ、軽量で小さな: http://jqnano.oleksiy.pro/