web-dev-qa-db-ja.com

JavaScript MVC(マイクロ)フレームワークはありますか?

クライアント側のJavaScript [〜#〜] mvc [〜#〜] (マイクロ)フレームワークはありますか?

かなり複雑なHTMLフォームがあり、MVCパターンの恩恵を受けるでしょう。

良い解決策は以下を提供すると思います:

  • モデルとビューは、値が変更されたときにコントローラーを更新します(オブザーバーパターン)
  • ページの読み込み時にフォームデータからモデルを作成します。
  • モデルが変更されたときに、モデルからフォームを作成します

Ajax、comet、 [〜#〜] jsonp [〜#〜] そして、すべてのジャズは深刻なやり過ぎです。

133
nicholaides

バックボーンは優れた軽量フレームワークです。試してみてください: http://backbonejs.org/

71
Martin Drapeau

JavaScriptMVC は優れたソリューションです。すべてがプラグインアプローチであるため、必要な機能のみを選択できます。 2.0の時点では、jQueryに基づいています。

JMVCは開発のための中間層を提供するだけなので、Webサイトを段階的に強化することはユーザーに任されています。その設計を自分で選択するのはユーザー次第です。

ただし、JavaScriptMVCは強力なイベント委任ベースのコントローラーであるため、単に最高の汎用JavaScriptMVCライブラリです。

イベント委任を使用すると、イベントハンドラーをアタッチする必要がなくなり、ページのルールを簡単に作成できます。

最後に、JMVCはMVCアーキテクチャ以上のものです。開発サイクルのすべての部分をカバーしています:

  • コードジェネレーター
  • SeleniumとEnv.jsの統合テスト
  • ドキュメントエンジン
  • 自動連結+圧縮
  • エラーの検出と報告
33
Justin Meyer

Spine はBackboneに似たAPIを持っていますが、はるかに小さいです。プロトタイプの継承が特徴です。

21
Kolja

AngularJSはjQueryと連携して動作し、MVC構造と懸念事項の厳密な分離に役立ちます。

完全なテスト環境と依存性注入が含まれています...

http://angularjs.org で確認してください

20
Vojta

確かにあります: http://www.javascriptmvc.com/

これで十分だと思います!

14
Filip Ekberg

これはあなたがチェックアウトすべきもののように見えると思います: http://knockoutjs.com/

(silverlight/wpfプログラマーとして、これは私がついにjavascriptを学び始めたライブラリでした。Model-View-View-Model(MVVM)パターンに基づいています。

14
Larsi

人気のある Backbone.js があります

9
Drew LeSueur

Stapes.js

完全な開示:私はこのライブラリの作成者です:)

本当に小さなもの(1.5kb縮小/ gzip圧縮)を探している場合は、外観を見て、気に入ったら教えてください。

8
Husky

Ember.js

これらはEmberを使用する喜びを作る3つの機能です。

  1. バインディング
  2. 計算されたプロパティ
  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>
8
Sam Hasler

要件がreallyシンプルな場合、 Alex Netkachov のように独自のシンプルなMVCを書くことができます。

彼の例はdojo上に構築されています(注:dojo.jsファイルがないため、彼のページでは機能しません)が、プレーンなJavaScriptのパターンに従うことができます。

7
system PAUSE

それはおそらくあなたが必要とするものにとってはやり過ぎですが、SproutCoreはMVCフレームワークであり、それ以上の重量はありませんJavaScriptMVCまたはTrimPathのJunction

残念ながら、これらのどれも プログレッシブエンハンスメント の原則に基づいて構築されているようには見えません。

4
system PAUSE

人気のActionScript MVCフレームワーク PureMVC は、最近JavaScriptに移植されました。まだ試してみる機会はありませんが、良いと確信しています。

3
Ricky

jquery-claypool もチェックアウトしてください。

jquery-claypoolは、Django、Rails、springなどでの私の経験に基づいて、jqueryに基づいて構築された小さく、高速で、レール可能なmvcフレームワークです。その非常に軽量で、クライアント環境とサーバー環境の両方で実行されます。

これは、クリーンmvc、カテゴリロギング、フィルタ(aop)、コントローラの遅延作成、制御の反転、設定の変更など、設計によるルーティングフレームワークを提供します。

jqueryが既に行っていることは何もせず、jqueryのように感じられ、優れたフレームワークのように動作します。

jquery-claypool

ぜひチェックしてください。

3
Chris Thatcher

Jamalは私が見た中で最も軽量です。また、jQuery(ボーナス)に基づいています。使用していません。

http://jamal-mvc.com/

2
KevBurnsJr

kitty を試してください。それはわずか1.4 KBであり、その唯一の依存関係はEJSです。

2

以下は、人類に知られているすべてのオープンソースJavaScriptフレームワークのリストです。

http://getopensource.info/explore/javascript/framework/

または、MVCフレームワークのみ

http://getopensource.info/explore/javascript/mvc/

開示:私はこのWebサイトの開発者です。

2

物事を制御し、非常にシンプルに保ちたい場合、フレームワークは必要ないかもしれませんが、あなた自身のmvcパターンを実装するだけです。次の記事を確認してください: JavaScriptを使用したModel-View-Controller(MVC) 2006年のAlex Netkachovによる.

2
Batailley

2016年更新:Sammy.jsは放棄されたようです。

Sammy.js をご覧ください

サイトからのテキスト:

クラスを持つ小さなウェブフレームワーク

  • [〜#〜] small [〜#〜]サミーのコアは16Kのみ圧縮され、5.2K圧縮およびgzip圧縮されています
  • [〜#〜] modular [〜#〜]Sammyはプラグインとアダプターのシステム上に構築されています。必要なコードのみを含めてください。また、独自のコードを再利用可能なプラグインに簡単に抽出できます。
  • [〜#〜] clean [〜#〜]API全体は、理解しやすく読みやすいように設計されています。サミーは、優れたカプセル化とアプリケーション設計を奨励しようとします。
  • [〜#〜] fun [〜#〜]楽しくない場合の開発の本当のポイントは何ですか。サミーはMATZのアプローチを試みます。開発者の幸福のために最適化されています。
2
Bijan

リストをもう少し完全にするために: ActiveJS

1
Bijan

私はAngularJSを支持しました(完全な開示、angular devの取り組み)に限られた方法で関わっています)、それについて非常に興奮しています。内部プロジェクトのために(申し訳ありませんが、共有するためのサインオフはありません)、AngularJSとBackboneの両方で実装します。これは素晴らしい練習でした。質問があり、組み込みのデータバインディング、ユニット/ e2eテスト、ドキュメントで本当に素晴らしい仕事をしましたが、まだベータ版であり、1.0は近い将来にリリースされます。

パラダイムシフトが少しあり、ほとんどのアプローチとはかなり異なるアプローチを使用します。お気に入りのjqueryプラグインの統合には少し手間がかかりますが、実行可能であり、完了しています(githubのangular-contrib)。

私は言います(これはほとんどのjs中心のフレームワークの問題です)、コンテンツをSEOフレンドリーにする方法を調査してください(あなたにとって重要な場合)。 6月にangularコミュニティに参加して以来、関心が高まっていることに気付き、多くの人がBackboneや他の人を見ているが実際に見ているものが好きだという投稿をしている角度で。

1
Dan Doyon

[〜#〜] mcv [〜#〜] という非常にシンプルなJavascript MVCフレームワークを開発しました。それはあなたが求めるものを正確には行いませんが、ヘルパーで簡単に拡張できます。とにかく、それは間違いなくマイクロ(1,9kbパック)です。

それは多かれ少なかれジャマルのように機能しますが、私は2つの理由で自分のものをロールバックすることにしました:

  • jQuery依存関係を削除します(ほとんどの場合jQueryと一緒に使用しますが)
  • ヘルパーで拡張可能にします。これらは、CakePHPの動作、コンポーネント、およびヘルパーに類似しています。
1
Andrea

私はこれをmicro-frameworkとは呼びませんが、確かに面白いように見えます: Cappuccino Web Framework

1
PEZ

CorMVC、理解しやすく、使いやすい、jqueryベースで、サーバーテクノロジーに依存しない

1
epitka

Can.jsは必要なものがすべて揃っており、わずか8 KBの重さです。 JavaScriptMVCから最高の部分を取り出して、オブザーバー、ウィジェット、バインディング、ワークスを備えた1つの小さいながらもキックフレームワークに抽出しました。主要なフレームワークと互換性があります( jQueryDojo ToolkitMooTools など)。ドキュメンテーションは素晴らしく、著者は敏感です。それは間違いなく一見の価値があります。

0
Steven Garcia

ここでもパイプを使用します- AFrameJS はjQuery、MooTools、Prototypeで動作します。

0
Shane Tomlinson

別の1つ: MooTools-MVC

Maverickは小さなJavaScript MVCフレームワークです- http://maverick.round.ee

0
Martin Tajur

AppleのCocoa Bindingsに触発された「Coherent」と呼ばれるKey-ValueバインディングJavaScriptフレームワークがありました。フレームワークはAppleによって購入されましたが、 http://github.com/trek/coherentjs/tree/master にはまだ古いコピーがあります。

0
Steve Harrison
0
Garion

もう1つ、軽量で小さな: http://jqnano.oleksiy.pro/

0
Oleksii G.