jQueryとAngularJSとNode.jsの違い[終了]


106

私はウェブ開発を始めたばかりで、今のところ私は知っています:

HTML-ウェブサイトのレイアウト

CSS-見栄えを良くする

JavaScript-機能

次に、jQueryAngularJSNode.jsとは何ですか?

クイック検索を行ったところ、jQueryは「JavaScriptライブラリ」、AngularJSは「JavaScriptベースのオープンソースのフロントエンドWebアプリケーションフレームワーク」、Node.jsは「JavaScriptランタイム環境」でした。

それらはすべてJavaScriptに関連しているようですが、新しい言語ですか?「フレームワーク/ライブラリ」とはどういう意味ですか?

簡単な答えをいただければ幸いです。(私はWebプログラミングを始めたばかりですが、プログラミングに精通しています)。


2
「ライブラリ」は基本的には、誰かがあなたのために書いてテストした便利な関数の集まりです-jQueryはJavaScript関数の集まりです。「フレームワーク」とは、一般的なアプリケーション構造コードが記述された抽象化の一種であり、特定のアプリのニーズに応じて、その一部をオーバーライドできます。NodeJSは、ブラウザ以外の場所でJavaScriptを実行できるようにするツールです(多くの場合、JavaやDotNET、PHPなどではなく、Webサーバー上で実行されます)。
nnnnnn 2016

3
きっと大丈夫だよ。あなたが理由を知っている?あなたは英語を話す人だからです。すでにたくさんのものがあります。あなたは時間をかけてそれを学ぶ必要があるだけです。私の国では、英語が大きな問題です。英語が苦手だからといって、プログラミングを学ぶのに苦労している人はたくさんいます(多くはあきらめて他の仕事に転向しています)。それでも、私が言ったように、あなたから多くの時間がかかります。
vothaison 2016

この質問も参照してください。
nnnnnn 2016

回答:


202

jQueryはライブラリ(クライアント側)です

jQueryは、高速、小型、軽量、「書きすぎない、もっと多くできる」、そして機能豊富なJavaScriptライブラリです。

HTMLドキュメントのトラバーサルと操作、イベント処理、アニメーション、Ajaxなどが、多数のブラウザで機能する使いやすいAPIにより、はるかにシンプルになります。

AngularJSはMVCフレームワーク(クライアント側)です。

AngularJSは、動的Webアプリケーションを開発するためのクライアント側のJavaScript MVCフレームワークです。

HTMLをテンプレート言語として使用し、HTMLの構文を拡張して、アプリケーションのコンポーネントを明確かつ簡潔に表現できます。AngularJSのデータバインディングと依存性注入により、通常は記述しなければならないコードの多くが排除されます。また、すべてブラウザ内で行われるため、あらゆるサーバーテクノロジーとの理想的なパートナーとなります。AngularJSは当初、Googleのプロジェクトとして開始されましたが、現在はオープンソースフレームワークになっています。

Node.jsは、プラットフォームおよびランタイム環境(サーバー側)です。

Node.jsは、Google ChromeのJavaScriptエンジン(V8エンジン)で構築されたサーバー側およびネットワーキングアプリケーションを開発するためのオープンソースのクロスプラットフォームランタイム環境です。Node.jsアプリケーションはJavaScriptで記述されており、OS X、Microsoft Windows、LinuxのNode.jsランタイム内で実行できます。

Node.jsは、さまざまなJavaScriptモジュールの豊富なライブラリも提供し、Node.jsを使用するWebアプリケーションの開発を大幅に簡素化します。Node.jsは、イベント駆動型のノンブロッキングI / Oモデルを使用して、軽量で効率的であり、分散デバイス全体で実行されるデータ集約型のリアルタイムアプリケーションに最適です。

ライブラリとフレームワーク

ライブラリとフレームワークの主な違いは、「制御の反転」です。ライブラリからメソッドを呼び出すときは、自分で制御できます。しかし、フレームワークでは、コントロールが逆になります。フレームワークがあなたを呼び出します。

ここに画像の説明を入力してください

図書館

Webアプリケーションを作成するときに役立つ関数のコレクション。あなたのコードが担当し、それが適切だと思われるときにライブラリを呼び出します。たとえば、jQuery。

フレームワーク

コードが詳細を入力するWebアプリケーションの特定の実装。フレームワークが担当し、アプリケーション固有の何かが必要なときにコードを呼び出します。たとえば、AngularJS、DurandalEmber.jsなど。


27

簡単に言えば、

  • jQuery-HTMLとCSSを操作するためのJavaScript関数のコレクション
  • AngularJS-HTMLとCSSの整理に役立つJavaScriptフレームワークです。
  • Node.js-はJavaScriptランタイムです...サーバーやローカルマシンのブラウザーのようなものですが、ブラウザーレンダリングエンジンやその他の機能がすべてありません。これは単なるランタイムです。

単純な言葉でのライブラリとフレームワークの主な違い:
フレームワークは特定のアーキテクチャを課し、アプリケーションがその期待に従うことを期待します
ライブラリは、非常に特定の問題(つまりjquery.post()関数)*


17

jQuery

jQueryは、多くのことを行うライブラリです。このコードには、このコードを自分で作成する必要がないように、よく使用される便利な関数が多数含まれています。それは石器時代の大工であるか、またはあなたの処分で一連の電動工具を持っていることの間の一種の違いです。

AngularJS

AngularJSは、インタラクティブなWebサイトおよびWebアプリケーション用のフロントエンドのグラフィカルユーザーインターフェイス(GUI)を構築するために使用されるフレームワークです。Node.jsと一緒に使用すると、強力な組み合わせになります

Node.js

ノードは、バックグラウンドでデータをプルするAPI RESTエンドポイントなどのバックエンドWebサービスを構築するために使用されるフレームワークです。AngularJSを使用してボタンとGUI要素をこれらのエンドポイントに接続し、データ駆動型のリッチなWebアプリケーションとWebレポートを構築できます。これらのサービスはRESTfulであるため、フロントエンドがリクエストを送信(ユーザーがボタンをクリックする)するまで待機し、データベースクエリを実行するか、ファイルを読み取ってデータを吐き出します。これにより、Webアプリケーションはユーザーに表示できます。

一般的なフレームワーク

初期の大工の例えのフレームワークは、プロのビルダーのチームにあなたのために仕事を委託するようなものです。あなたは仕事を十分詳細に説明し、彼らが引き継ぎ、実際にそれを成し遂げます。したがって、あなたのタスクは、ビルダーのチームが理解できる正しい言語でジョブの仕様を思い付くことに短縮されます。

AngularJSは、電気を備えたインテリアデザインチームのようなものであり、Node.jsはそれ以外のものです。単純化しすぎですか?多分。しかし、あなたは簡単な説明を求めました。

したがって、AngularJSとNode.jsは反対のものと考えることができますが、同じアプリケーションまたはプロジェクトで一緒に使用できます。目的は異なりますが、どちらもJavaScript(およびある程度jQuery)を使用して実行します。


7
  • フレームワーク:これは、コードを提示する方法の特定の構造を示します。特定の問題を解決/単純化したり、アーキテクチャを「順序どおり」にしたりするためのヘルパー、コンストラクターなどに沿った、コードテンプレートによく似ています。例、Backbone.js、RequireJS、Socket.IO。フレームワークは、一般的なアプリケーション機能をカプセル化し、開発者がアプリケーションに固有の部分に集中できるようにします。

  • ライブラリー:ブラウザー、DOMモデルなどのさまざまなレイヤーを高度に抽象化したツールキット全体です。また、優れたツールキットとして、多くのツールやきちんとしたものを提供します。これにより、一般に、コーディングエクスペリエンスが簡素化されます。例はjQueryとMooToolsです。

見て、ここで詳細については。


「ライブラリ:ツールキット全体」 -その目的が、たとえば日付/時刻データだけを処理することであれば、非常に小さなツールキットになる可能性があることに注意してください。
nnnnnn 2016

7

彼らが日々人気を博している理由は次のとおりです。

jQuery

  • jqueryコードは比較的短いです。たった5行のjQueryコードが25行の従来のJavaScriptコードに相当する場合があります(たとえば、AJAXでデータファイルをロードする)。これは、コードが少なく、ファイルがはるかに小さいことを意味します。
  • 大規模なライブラリー:jQueryを使用すると、他のJavaScriptライブラリーと比較して、大量の関数を実行できます。
  • Ajaxでの超簡単作業:jQueryを使用すると、Ajaxテンプレートを非常に簡単に開発できます。Ajaxを使用すると、ページ全体をリロードすることなく、ページでアクションを実行できる洗練されたインターフェースを実現できます。

AngularJS

  • 双方向データバインディング:jQueryで単純な双方向データバインディングイベントを記述できますが、JavaScript MVCライブラリは、モデルをビューに接続するためのより宣言的な(HTMLを使用した)方法を提供します。
  • SPA(単一ページアプリケーション)に最適:AngularJS、Aurelia、Ember.jsMeteorなどのライブラリは、jQueryですべてを記述する代わりに、すべての配管を提供します

Node.js

  • 高速:JavaScriptの高速実行に加えて、Node.jsの背後にある真の魔法はイベントループです。イベントループは、すべてのI / O操作を非同期で実行する単一のスレッドです。従来、I / O操作は同期(ブロッキング)で実行されるか、並列スレッドを生成して作業を実行することで非同期で実行されます。
  • リアルタイムが容易に:Node.jsが多数の同時接続に優れている場合、チャットやゲームなどのマルチユーザーのリアルタイムWebアプリケーションに優れていることは理にかなっています。Node.jsのイベントループは、マルチユーザー要件を処理します。

2
「jQueryコードの5行は、従来のJavaScriptコードの25行に相当します」 -何をしようとしているのかに応じて。一部のタスクでは違いが最小限であり、他のタスクでは大きな違いがあります。「これは、ファイルが小さくなり、Webページの読み込みが速くなることを意味します。」-jQueryを使用して自分で記述しないようにしたコードがすべてjQueryファイルに含まれていることを除いて、ブラウザにもダウンロードする必要があります。したがって、コードの総量はおそらくそれよりも多くなります。
nnnnnn 2016

これらのファイルは、ドキュメントの読み込み中に読み込まれます。ベストプラクティスは、DOMが読み込まれるまでjsを使用しないことです。クリックまたはホバーイベントの実行速度に違いはあり
ません

あなたの答えで「より速いローディング」と言いました。それは真実ではありません、あるいは確かに普遍的に真実ではありません。「ドキュメントの読み込み中」に読み込まれるファイルはダウンロードする必要があり、(ページによっては)ユーザーがページを有意に操作する前にダウンロードする必要があります。(注:私は、jQueryが悪いことだと言っているのではなく、説明がせいぜい誤解を招くだけです。)
nnnnnn


私はjQueryと同じプログラムではJavaScript書くことができます
KスプリットX

6

HTML、CSS、JavaScriptを使用してインタラクティブなWebサイトを作成します。

jQueryはJavaScriptで記述されたツールです。

AngularJSはJavaScriptで記述されたツールです。

ReactはJavaScriptで記述されたツールです。

これらのツールは、HTML、CSS、JavaScript間の相互作用を独自のルールに従って管理するのに役立ちます。ツールが本当に大きくなると、その特性に応じて、「ライブラリ」や「フレームワーク」などの名前が付けられます。

私たちはしばしばJavaScriptをWebブラウザーで実行します。しかし、数年前の時点で、Node.jsと呼ばれるものが登場し、ブラウザの外でJavaScriptを簡単に実行できるようになりました。私はそれを「ブラウザーの外でJavaScriptを実行するプログラム」(つまり、HTMLやCSSを確認する必要がないこと)と考えるのが好きです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.