JavaScript 開発者の数と比較して、JavaScript フレームワーク、ライブラリ、ツールの数はさらに多いようです。 2017 年 5 月の時点で、GitHub で簡単に検索すると、110 万を超える JavaScript プロジェクトがあることがわかります。 npmjs.org には 500,000 の利用可能なパッケージがあり、毎月 100 億近くのダウンロードがあります。
この記事では、最も人気のあるクライアント側 JavaScript フレームワーク、ライブラリ、ツールと、それらの基本的な違いについて説明します。この記事ではどれが最適であるかについては説明できないかもしれませんが、プロジェクトに最も適したものが最適です。
クラス ライブラリは、組織化された関数のコレクションです。一般的なクラス ライブラリには、文字列処理、日付、HTML DOM 要素、イベント、Cookie、アニメーション、ネットワーク リクエスト、その他の関数が含まれます。関数を自分で実装して、関数が呼び出されたときに値を返す必要があるかどうかを選択できます。
クラス ライブラリは通常、プロジェクトの詳細をスムーズに実装するのに役立つ高レベルの抽象化メソッドを提供します。たとえば、Ajax は通常 XMLHttpRequest API に依存しており、関数の実装に必要なコードは数行だけですが、ブラウザーごとに微妙な違いがあります。クラス ライブラリは、より単純な ajax() 関数を提供するため、開発者はより高度なビジネス ロジックに集中できます。
クラス ライブラリにより開発時間を 20% 短縮でき、開発者は実装の詳細を心配する必要がありません。
しかし、欠点もあります:
クラスライブラリのバグを見つけて修正するのは難しい
開発チームはパッチの迅速なリリースを保証できません
パッチはAPIを変更する可能性があり、その結果、大規模な変更する必要があるコードの量
学習プロセス中に問題が発生した場合、または学習リソースを入手したい場合は、学習交換グループ
343599877 に参加してください。フロントエンドを一緒に学びましょう!
フレームワークはアプリケーションのスケルトンです。これには、特定の方法でソフトウェアを設計し、特定のノードに独自のロジックを実装する必要があります。フレームワークは通常、イベント、ストレージ、データ バインディングなどの機能を提供します。
フレームワークは通常、クラス ライブラリよりも高いレベルの抽象化を提供し、プロジェクトの最初の 80% を迅速に構築するのに役立ちます。
フレームワークの欠点:
アプリケーションがフレームワークの範囲を超える場合、最後の 20% が困難になる可能性があります
フレームワークの更新が難しい
コアフレームワークのコードと概念がほとんど更新されない
ツールは開発作業に役立ちますが、プロジェクトに不可欠な部分ではありません。ツールには、ビルド システム、コンパイラー、トランスパイラー、コード スプリッター、イメージ コンプレッサー、展開メカニズムなどが含まれます。
ツールは開発プロセスを容易にするのに役立ちます。たとえば、多くのプログラマーは、コード分離、ネスト、レンダリング時の変数、ループ、関数を提供するため、CSS よりも Sass を好みます。ブラウザは Sass/SCSS 構文を理解できないため、テストと展開の前に、適切なツールを使用してコードを CSS にコンパイルする必要があります。
ライブラリ、フレームワーク、ツールの違いは非常に小さいです。フレームワークにはクラス ライブラリを含めることができ、そのクラス ライブラリはフレームワークと同様のメソッドを実装できます。プロジェクト内のツールはすべて必須です。したがって、ライブラリ、フレームワーク、ツールを明確に区別する必要はありません。
人気順のランキングです:
jQuery | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Types | Libraries | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ウェブサイト | jquery。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
github.com/jquery/jquery | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jQueryチーム | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2006年8月 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
最低 30kb | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ユニバーサル | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ウェブサイトの 72.4% |
ロダッシュ | |
タイプ | クラスライブラリ |
ウェブサイト | lodash.com/ |
ナレッジベース | github.com/lodash/lodash/ |
現在のバージョン | 4 .17. 4 |
開発者 | John-David Dalton |
リリース日 | 2012年4月 |
サイズ | 最小4kb – 24kb |
使用方法 | ユニバーサル |
使用状況 | 低 |
アンダースコア | |
タイプ | クラスライブラリ |
ウェブサイト | underscorejs.org/ |
ナレッジベース | github.com/jashkenas/underscore |
現在のバージョン | 1.8.3 |
開発者 | Jeremy Ashkenas |
リリース日 | 2009年10月 |
サイズ | 最小6kb |
用途 | ユニバーサル |
使用度 | 低い |
このセクションでは、Lodash と Underscore について一緒に説明します。これらは、ネイティブの文字列、数値、配列、その他のプリミティブ オブジェクト メソッドを補完する数百もの機能的な JavaScript ユーティリティを提供します。 2 つのライブラリには重複する部分がありますが、両方が同じプロジェクトで使用される可能性は低いです。
これら 2 つのクラス ライブラリはクライアント側では使用率が非常に低いですが、サーバー側の Node.js アプリケーションではこれら 2 つのクラス ライブラリを使用できます。
利点:
小さくてシンプル
優れたドキュメントで学びやすい
ほとんどのライブラリおよびフレームワークと互換性がある
組み込みオブジェクトを拡張しない
使用できますクライアント側で または、サーバーで
を使用します。 欠点:
一部のメソッドは、ES2015 以降の JavaScript バージョンでのみ使用できます。
現在のバージョン | |
開発えー | |
リリース日 | |
サイズ | |
用途 | |
使用量 | |
バージョン 2 (現在はバージョン 4!) がリリースされましたが、Angular 1.x はまだ開発中です。 | 利点: |
一部の大企業が使用している人気のフレームワーク | |
最新の Web アプリケーションを開発するためのソリューション |
では、多くの記事やチュートリアルが利用可能です:
学習曲線が急峻なコード ライブラリ
Angular
4.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2016年9月 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
最小40 kb | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
シングルページアプリケーション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
低い | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
React | /react / |
ナレッジベース | github.com /facebook/react |
現在のバージョン | 15.5.4 |
開発者 | Facebookと貢献者 |
リリース日 | 2013年3月 |
サイズ | 21kb分 |
使用 | シングル ページ アプリケーション |
使用状況 | 低 |
React はユーザー インターフェイスの構築に使用される JavaScript ライブラリであり、昨年最も人気のあるクラス ライブラリでもありました。これは、Model-View-Controller (MVC) 開発の「View」部分に焦点を当てており、これを使用すると、状態を保持する UI コンポーネントを簡単に作成できます。これは、仮想 DOM を実装するために推奨されるクラス ライブラリの 1 つであり、そのメモリ構造により差分を効率的に計算でき、ページ更新がより効率的になります。 | 統計によると、React は Web サイトではなくアプリケーションで使用されているため、使用率が低いようです。 |
利点: |
シンプルなコンポーネントモデル
優れたドキュメントとオンラインリソース
サーバーサイドレンダリングが利用可能
現在人気、経験豊富急速な成長
モデルとコントローラー部分を提供するために他のクラスライブラリまたはフレームワークが必要
DOM 変更コードや他のライブラリとは互換性がありません
React the ES6 Way の詳細をご覧ください
vuejs.org | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
github.com/vuejs/vue | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Evan You | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2014年2月 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
最小19kb | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
シングルページアプリケーション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
低 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
バックボーン。 js | |
タイプ | フレームワーク |
ウェブサイト | backbonejs.org |
ナレッジベース | github.com/jashkenas/backbone/ |
現在のバージョン | 1.3 .3 |
開発者 | Jeremy Ashkenas |
リリース日 | 2010年10月 |
サイズ | 最小8kb |
使用方法 | シングルページアプリケーション |
使用量 | 低 |
バックボーン.js は、サーバー側フレームワークでよく見られる MVC 構造を提供する最も初期のクライアント側オプションの 1 つです。唯一の依存関係は Underscore.js です。
Backbone.js は他のプロジェクトと統合できるためライブラリであると主張していますが、ほとんどの開発者はこれをフレームワークとして考えていると思います。
利点:
小さいサイズ、軽量、低複雑さ
HTML ロジックの追加なし
豊富なファイル
Trello、WordPress.com、リンクされたそしてでGroupon
短所:
AngularJSなどの他のフレームワークと比較して抽象化レベルが低い
データバインディングなどの機能を実装するには追加コンポーネントが必要です
最新のフレームワークは廃止されましたMVC アーキテクチャの使用
Ember.js | |
type | フレームワーク |
ウェブサイト | emberjs.com |
ナレッジベース | github .com/emberjs/ember.js |
現在のバージョン | 2.15.0 |
開発者 | Emberチーム |
リリース日 | 2011年12月 |
サイズ | 最小95kb |
使用 | シングルページアプリケーション |
使用量 | 低 |
Ember.js は、Model-View-ViewModel (MVVM) パターンに基づくフレームワークの 1 つです。テンプレート、データ バインディング、クラス ライブラリを 1 つのパッケージに実装します。
利点:
クライアントアプリケーションに単一のソリューションを提供します
開発者は jQuery を使用するため、開発効率を即座に向上させることができます
優れた下位互換性とアップグレードオプション
ウェブ開発標準
短所:
分布が大きい
より小さなコンポーネント構造に移行している他のフレームワークと比較して、非常に大規模です
曲線が急峻です
Knockout.js | |
タイプ | フレームワーク |
ウェブサイト | knockoutjs.com |
ナレッジベース | github.com/knockout/knockout |
現在のバージョン | 3.4.2 |
開発者 | Steve Sanderson |
リリース日 | 2010年7月 |
サイズ | 最小59kb |
使用法 | シングルページアプリケーション |
使用法 | Low |
Knockout.js は、初期の MVVM フレームワークの 1 つであり、テンプレートと依存関係の追跡により、UI が基礎となるデータと確実に同期するようにします。
利点:
小型で軽量、依存関係なし
優れたブラウザサポート、IE6をサポート可能
優れたドキュメントリソース
欠点:
大規模なプロジェクトでは、複雑です
開発が遅れています
使用量が減っているようです
以下のプロジェクトは、特に人気があるわけではありませんが、検討する価値があります:
Polymer – クラス ライブラリブラウザー全体で HTML5 Web コンポーネントをサポート
Meteor – Web アプリケーション用のフルスタック プラットフォーム
Aurelia – 比較的新しい軽量のクロスプラットフォーム フレームワーク
Svelte – フレームワークのソース コードをクリーンな JavaScript
Conditioner.js – 状態に基づいてモジュールを自動的にロードおよびアンロードするクラス ライブラリ
ビルド ツールは、前処理、コンパイル、画像の最適化、縮小などのさまざまな Web 開発タスクを自動化しますコード、コード分析、テストの実行など。タスクは実行可能パッケージで一元管理できます。
現在最も人気のあるツールは次のとおりです:
Gulp.js | |
Website | gulpjs.com |
ナレッジライブラリ | github.com / gulpjs/gulp |
現在のバージョン | 3.9.1 |
月間ダウンロード数 | 300万 |
Gulpは最初のタスク実行ツールではありませんでしたが、すぐに最も人気のあるツールになりました。 Gulp は、読みやすい JavaScript コードを使用してソース ファイルをストリームに読み込み、ビルド フォルダーに出力する前にさまざまなプラグインを通じてデータを管理します。他のオプションを選択する前に Gulp.js を確認するのは簡単、迅速、そして楽しいです。
NPM | |
ウェブサイト | npmjs.com |
ナレッジベース | github.com/npm/npm |
現在のバージョン | 4.5.0 |
月間ダウンロード数 | 300万 |
npm は Node.js パッケージ マネージャーですが、そのスクリプト ツールを使用して一般的なタスクを実行できます。これは、依存関係が少ない単純なプロジェクトに最適です。ただし、より複雑なタスクには適用できなくなる可能性があります。
Grunt | |
ウェブサイト | gruntjs.com |
ナレッジベース | github.com/gruntj s /grunt |
現在のバージョン | 1.0.1 |
月間 200 万ダウンロード |
Grunt は、大量採用された最初の JavaScript タスク実行ツールの 1 つでしたが、その速度と複雑な JSON 構成が Gulp の台頭につながりました。これらの問題が解決された今でも、Grunt は依然として人気のある選択肢です。
複数の JavaScript ファイルの管理は面倒なものになってきています。デフォルトでは、ブラウザ ファイルはコンパイルされないため、依存関係を適切な順序でロードまたは接続する必要があります。 ES6 モジュールや CommonJS などのオプションもありますが、ブラウザのサポートは限られているため、モジュール バインディングが重要になります。
WebPack | |
ウェブサイト | webpack.js.org |
ナレッジベース | github.com/webpack / webpack |
現在のバージョン | 2.5 .1 |
月間600万ダウンロード |
Webpackは、人気のあるモジュールオプションをすべてサポートしており、React開発の代名詞となっています。 Webpack はモジュール バンドラーであると主張していますが、すでにユニバーサル タスク ランナーとして使用できます。
Browserify | |
ウェブサイト | browserify.org |
ナレッジベース | github.com/subst /node-browserify |
現在のバージョン | 14.3 .0 |
月間ダウンロード数 | 260万 |
Browserifyは、Node.jsで使用されるCommonJSモジュールをサポートしており、すべてのモジュールを単一のブラウザ互換ファイルにコンパイルします。
RequireJS | |
ウェブサイト | requirejs.org |
ナレッジベース | github.com/jrbur ke /r.js |
現在のバージョン | 2.3 .3 |
毎月何百万ものダウンロード |
RequireJS は、Node.js でも動作するブラウザー内モジュール ローダーです。
コード分析ツールは、潜在的なエラーや構文標準からの逸脱がないかコードを分析するために使用されます。閉じていない括弧または未宣言の変数は常に検出されます。
ESLint | |
ウェブサイト | eslint.org |
ナレッジベース | github.com/eslint/ es lint |
現在のバージョン | 3.19。 0 |
月間ダウンロード数 | 600万 |
ESLint はプラグイン可能なコード分析ツールです。各ルールはプラグインであるため、個人の好みに合わせて構成できます。
JSHint | ウェブサイト |
ナレッジベース | |
現在のバージョン | |
月間ダウンロード数 | |
JSHintは、実際のエラーと古い構文のバランスが取れた柔軟なJavaScriptコード分析ツールです。 |
ウェブサイト | |
ナレッジベース | |
現在のバージョン | |
月間ダウンロード | |
JSLint は、厳密なデフォルト ルール セットを実装する最も初期のコード分析ツールの 1 つです。 |
テスト駆動開発のタスクでは、独自のコードをテストするコードを作成する必要があります。 Ava、Tape、Jestなど、多くのオプションがありますが、現在最も人気のある3つのツールは、
Website | |
です。 | ナレッジベース |
現在のバージョン | |
月間ダウンロード数 | |
Mochaは、で使用できるJavaScriptテストフレームワークですノード.js またはブラウザでテストを実行します。非同期テストをサポートしており、テスト コードを読みやすい方法で表現できる Chai とともによく使用されます。 |
ウェブサイト | |
ナレッジベース | |
現在のバージョン | |
月間 200 万ダウンロード | |
Jasmine は、ブラウザーでの UI とインタラクションを自動的にテストできる動作駆動型テスト ツールです。 |
ウェブサイト | |
ナレッジベース |
|
現在のバージョン | |
月間ダウンロード数 | |
QUnit は、特定のパラメーターを入力したときに関数の結果を確認できる単体テスト フレームワークです。また、特定のコード分岐が欠落していないことを確認するためのテスト結果もレポートします。 まとめと提案現在最も合理化されたフレームワークは React であり、他のフレームワークも人気のトレンドに向けて開発されています。 安全で多用途な Web アプリケーションが必要な場合は、Vue.js の使用を検討してください。 モノリシック フレームワークはもう人気がありません。大規模なプロジェクトの厳密な構造管理が必要な場合は、AngularJS が良い選択です。現在、ほとんどの人は Angular 1.0 を使い続けていますが、長期的に見ると、TypeScript を学びたいのであれば、Angular 4.x の方が良い選択です。 jQuery は現在あまり人気がなく、テクノロジー ニュースでもほとんど言及されませんが、活発に開発されており、Web サイトやアプリケーションにとって強力なツールであることは否定できません。 jQuery は学習曲線が緩やかで、世界中の多くの開発者によく理解されています。 冒険してみたいなら、Svelte を試してみてください。これは、ビルド時に JavaScript を事前レンダリングする興味深いクライアント/サーバー フレームワークであり、開発方法を変える可能性があります。 ツールの選択はプロジェクトによって異なります。現在、ほとんどの開発者は Gulp を使用していますが、WebPack の人気が高まっています。同時に、ESLint や Mocha などのテスト ツールも見逃せません。 |
以上が最新のフロントエンド フレームワーク、クラス ライブラリ、ツールの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。