jQueryは、JavaScriptMVC、BackboneJS、SproutCore、Knockoutなどのフレームワークとどこに適合しますか?


14

私はこの2年間、JQueryを喜んで使用してきましたが、JQueryを使用して非常にクールな機能を作成することに成功しました。また、Webの将来が現在のクライアント側の道を進むと信じています。

しかしながら...

次の課題は、さまざまなコントローラーフレームワークの形でやってくるようです:KnockoutJSBackboneJSSproutCoreJavaScriptMVC(リストは続きます)。

Additonally、いくつかの素晴らしいがあるAMDローダーのような使用のためのツールRequireJSまたはLabJSなどしかし、jQueryのは、今持っているdefinethen機能が焼きに。

すべてを追跡することはますます難しくなっています...

そして今、私の仕事は、何らかの形のクライアント側のMVCまたはMVVMフレームワークを使用するための戦略的方向を評価/決定することであるように思われます...しかし、私には非常に多くの質問があります。

  • 上記のさまざまなコントローラーフレームワークとJQuery はどこに適合しますか?
  • JQuery はそれぞれと一緒に使用されていますか、またはそれらのいくつかは独自の「JQueryスタイルのバージョン」を焼き付けていますか?
  • 上記のさまざまなコントローラーフレームワークのいずれかを実装する場合、RequireJS などのツールは引き続き必要ですか?
  • definethen能力焼きにjQueryの 今取って代わる AMDローダーは、上述しましたか?
  • どれが最もモジュール式のようですか?(下記の注を参照)

注:
将来のフレームワークで望まないことの1つは、使用しない機能を大量に取り込む必要があることです。つまり、真にモジュール化されたフレームワークを使用します。たとえば、jQuery UIを使用するには、実際には使用しない可能性のある他の多くのコアライブラリを取り込む必要があります。

私はそれぞれを実験しますが、いくつかの実際のフィードバックは素晴らしいでしょう。私はいくつかの「似たような」質問を見てきましたが、上記の歪曲に実際に答えた人はいません。

前もって感謝します!

回答:


11

jQueryクロスブラウザー正規化ツール。それはあなたに次のものを与えます

  • DOMユーティリティ
  • イベントシステム
  • アヤックス
  • アニメーション
  • ES5ユーティリティ
  • 他の何か

Backbone / knockout / yada / yadaはMVCに似たライブラリであり、モジュラーアプリケーションの構築と作成に役立ちます。これらの構造が必要な場合にのみ必要です。

RequireJS / yada / yadaはモジュールローダーです。モジュール型アプリケーションを作成する場合は、何らかの形式のモジュールローダーが必要です。

上記のさまざまなコントローラーフレームワークとJQueryはどこに適合しますか?

前述のように、jQueryはブラウザーを正規化します。コントローラフレームワークはサポートしていません。jQueryは必要ありませんが、ブラウザーを正規化する方法が必要です。

JQueryはそれぞれと一緒に使用されていますか、またはそれらのいくつかは独自の「JQueryスタイルのバージョン」を焼き付けていますか?

バックボーン/ノックアウト/ JavaScriptMVCにはブラウザーの正規化が組み込まれていないため、そのためのツールが必要です。SproutCoreについてはよくわからないが、そこにたくさんあるようだ。

上記のさまざまなコントローラーフレームワークのいずれかを実装する場合、RequireJSなどのツールは引き続き必要ですか?

これらは、モジュラーアプリケーションを記述するために記述する場合にのみ必要です。かなりそうです。

モジュラーアプリケーションには3つのフレーバーがあります

  • requireJSのような非同期requireローダー
  • 同期にはmodul8のようなローダーが必要です
  • 名前空間を使用し、ファイルのみを含める
  • エンダーのようなパッケージ

JQueryに組み込まれた定義と機能は、上記のAMDローダーよりも優先されますか?

いいえ。jQueryに組み込まれている定義機能を使用すると、jQueryをラップせずにAMDローダーで使用できます。まだAMDローダーが必要です。「then」機能は、jQueryの遅延オブジェクトのほんの一部です。

どれが最もモジュール式のようですか?(下記の注を参照)

それは考え抜かれた質問です。私の意見では、jQueryを含むこれらすべてのフレームワークは肥大化しており、モジュール式ではありません。

モジュール化が必要で、独自のライブラリを作成し、独自のアーキテクチャを作成します。

しかし、それはシンプルで小型またはですので、あなたは悪の低いをしたい場合、私は背骨を選ぶだろう背骨類似しています


Raynosに感謝します...素晴らしい答えをいつでも期待できます!
囚人ゼロ

@Marjanまた、他にも入力を希望する人を待っています。
囚人ゼロ

@PrisonerZERO:まったく問題ありません。あなたはレイノスと幸せに思えたとして答えは、私のコメントは、あなたが(私はあなたのプロフィールをチェックしていなかったし、あなたの担当者は、あなたがここにかなり新しいユーザーで示唆)の答えを受け入れることについて知らなかっただけの場合にあった
マージャンVenema氏

2

私は貢献者であるため、JavaScriptMVCで回答します。

上記のさまざまなコントローラフレームワークとJQueryはどこに適合しますか?

JavaScriptMVCはjQueryに依存しており、jQueryを広範囲に使用しています。

JQueryはそれぞれと一緒に使用されていますか、またはそれらのいくつかは独自の「JQueryスタイルのバージョン」を焼き付けていますか?

JavaScriptMVCには、jQueryと競合する機能はありません。これは、独自のイベントシステムを持つBackboneには当てはまりません。ただし、バックボーンまたはスパインの追加は非常に最小限です。

上記のさまざまなコントローラーフレームワークのいずれかを実装する場合、RequireJSなどのツールは引き続き必要ですか?

JavaScriptMVCには、依存関係管理システム->スチールが付属しています。JavaScriptMVCをRequireJSで使用できますが、実際にはスチールははるかに強力で、ユーザーがダウンロードするサイズとほぼ同じです。

どれが最もモジュール式のようですか?(下記の注を参照)

これは考えられません。JavaScriptMVCは非常にモジュール化されています。必要なものだけを使用します。バックボーンまたはスパインと比較して、M、V、またはCパーツをスタンドアロンで使用できます。一緒に組み立てると、Backboneよりも1kだけ大きくなります(jQueryとUnderscoreを使用する場合)。基本コンポーネントのさまざまなサイズについては、https//github.com/jupiterjs/javascriptmvc/issues/26をご覧ください。

ただし、JavaScriptMVCはBackboneまたはSpineよりも(機能の点で)はるかに強力です。たとえば、テンプレート化されたイベントハンドラは、実質的にすべてのメモリリークを防ぎます。これは、ウィンドウがクリックされたときに非表示になるツールチップです。

$.Controller('Tooltip',{
  "{window} click" : function(){
    this.element.remove();
  }
})

これは、コントロールが次のようなモデルの変更をリッスンしているMVCアプローチでは絶対に重要です。

$.Controller('Todos',{
  "{Todo} created" : function(Todo, ev, createdTodo){

  }
})

コントローラは、これらすべての外部イベントハンドラを自動的にバインド解除します。

MVCパーツだけの他のいくつかの長所:

  • $ .Classは非常に強力なクラスシステムです
  • $ .Viewおよび$ .Modelは遅延オブジェクトをサポートします
  • $ .Controllerはイベントハンドラを「再バインド」できます
  • $ .Modelは、関連付け、ゲッター/セッター、デフォルト、検証をサポートします

JavaScriptMVCは、MVCパーツ(jQueryMXサブプロジェクトの一部)だけではありません。次のものがあります。

  • jQueryMX-特別なイベント、domヘルパーなどのjQueryにない機能
  • スチール-依存関係管理システム。ただし、ajaxアプリを使用してGoogleクロール可能にするなどのことができます。
  • FuncUnit-驚くほど強力なテストフレームワーク。

さて、何を使うかによって、多くのことが決まります。「アプリ」と「ページ」のどちらを作成するかによって、多くのことが異なります。テスト、依存関係管理、メモリリークを気にするアプリケーションが必要なアプリケーションは、JMVCまたはSproutCoreを調べます。

いくつかの基本的なウィジェットを一緒に接着する場合は、背骨またはバックボーンを調べます。


「バックボーンまたはスパイン。M、V、またはCパーツをスタンドアロンで使用できます。」M、V、Cのそれぞれが背骨と背骨と同じくらい大きいことを除いて。
Raynos

それは真実ではない。バックボーンは5kであり、アンダースコア依存性があります。背骨が何なのか分かりません。しかし、内訳は次のとおりです。クラス:1k、コントローラー:1.74k、モデル:2.8k、$。View:1.6k、$。String:.5k。合計8.6k。それは3k以上ですが、はるかに便利な機能です。
ジャスティンマイヤー

Kendo UIコントロールのようなものでJavaScriptMVCを使用しますか?他にどのようなコントロールがありますか?
囚人ゼロ

はい、jQueryベースのUIライブラリはすべて動作するはずです(イベントにjQueryのイベントシステムを使用している場合)。
ジャスティンマイヤー

BackboneはjQueryの代わりにZepatoを使用できるため、jQueryと結合されたJMVC MVC依存関係よりもはるかに少ないことに注意してください。ただし、jQueryがないとかなりの損失が発生します。
ジャスティンマイヤー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.