web-dev-qa-db-ja.com

jqueryはjavascriptライブラリまたはフレームワークですか?

ここでは、フレームワークのカテゴリにjqueryが記載されています。 http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

Jqueryはjavascriptライブラリまたはフレームワークですか?

107
rahul dagli

図書館。 homepage によると、私は同意します。

フレームワークは通常、ソリューションを実装する特定の方法を強制するものですが、jQueryは、やりたいことを簡単に実装するためのツールにすぎません。

158
GregL
28
Dunhamzzz

確かに、それはjavascriptライブラリです。しかし、フレームワークであるかどうかについては、フレームワークではないと思います。 wikipediaのソフトウェアフレームワークの定義 をご覧ください。

定義済みのアプリケーションプログラミングインターフェイスを提供するソフトウェアライブラリのコレクションです。

また、jQueryは単一のライブラリです。その後、それは言う:

フレームワークには、通常のライブラリから分離する重要な特徴的な機能が含まれています。

  1. 制御の反転-フレームワークでは、ライブラリや通常のユーザーアプリケーションとは異なり、プログラムの全体的な制御フローは呼び出し側ではなく、フレームワークによって決定されます。

だから、私はそれがフレームワークではないと思います。

18
Saeed

angularjs Webサイト によると

  • ライブラリ-Webアプリを作成するときに役立つ関数のコレクション。あなたのコードが担当し、次の場合にライブラリを呼び出します
    それは適合しているようです。たとえば、jQuery。
  • フレームワーク-Webアプリケーションの特定の実装。コードで詳細を入力します。フレームワークが担当し、アプリ固有の何かが必要なときにコードを呼び出します。例:デュランダル、エンバーなど.
7
Harke

フレームワークとlibarryは必ずしも相互に排他的な用語ではありません。フレームワークは通常、ライブラリまたはライブラリのコレクションです。

厳密に言えば、jQueryはライブラリですが、ある程度までソフトウェアフレームワークの定義を満たします。 jQueryはソフトウェアフレームワークの定義を厳密に満たしていないと多くの人が主張しますが、実際には、他のJavaScriptフレームワークもフレームワークの定義を完全に満たしていません。

ソフトウェアフレームワークの定義的な特徴の1つは、そのコードが変更から保護されていることです。 JavaScriptでは、明らかにそうではありません。クライアント側のコードに呼び出すことができるライブラリまたはフレームワークは変更可能ですが、それらを変更することはベストプラクティスに反します。したがって、BootstrapまたはAngularJSをフレームワークと呼ぶことが許されるのであれば、jQueryもフレームワークと呼ばれない理由はありません。 このリンク には、jQueryがフレームワークと呼ばれる基準を満たす方法の詳細な説明が含まれています。

おそらく、jQueryがライブラリよりもフレームワークである理由の最良の説明は、開発者として、そのフレームワークのような機能を使用しないことを選択できるという事実です。たとえば、同じ行で単純なjQueryステートメントと標準のJavaScriptステートメントを混在させることができます。 AngularJSおよびBootstrapは通常、これを行うことを許可しません。したがって、jQueryがフレームワークであるかどうかの正確な答えは、「フレームワークとして使用するかどうかによって異なります」です。

4

JQuery自体はフレームワークではなくライブラリであるというここでのすべての答えに同意します。 Saeedの答えで指定されているように、重要な特徴の1つは制御の反転です。ただし、jQueryの機能を使用して独自のフレームワークを作成できます。

例:フレームワークとして定義されているjQueryの上に構築されたプロジェクトがあります: jQuery Mobile:A Touch-Optimized Web FrameworkJavaScriptMVC および sammy.js いくつか例を挙げます。

jQuery UI のようなjQueryの上に構築された他のライブラリもあります

ライブラリの一部とフレームワークを定義する場合、その一部はセマンティクスのように見えますが、これらの例は私にとって明確な線引きに役立ちます。

2
Durandal

上記のスレッドのほぼ全員が語っている制御の反転について話すと、jQueryはフレームワークです。

それはIOCを持っています。例えば、関数を書くとき$(document).ready {} ...このメソッドを呼び出すのはコンテナで、単にコードを中かっこ。私たちはこのメソッドの呼び出し元ではないため、「Inversion of Control」

このように、jQueryはフレームワークです。

0
pinkman