高レベルのフレームワーク比較 React やVue などのJavaScriptベースのWebアプリケーションフレームワークは、幅広い機能を提供しますが、それに伴うトレードオフも存在します。これらのフレームワークは、ルーティング、コンポーネントベースの開発、状態管理など、ネイティブWebテクノロジーで利用可能な機能を拡張または強化することがよくあります。Web Components 、 Fetch やES Modules などの最新のJavaScript API 、 Shadow DOM などのブラウザ機能を含むネイティブWeb標準は大幅に進歩しましたが、フレームワークは、開発者の生産性を向上させ、大規模アプリケーション向けの構造化されたパターンを提供し、エッジケースの処理を簡素化し、パフォーマンス最適化のためのツールを提供する能力があるため、依然として広く使用されています。[ 8 ] [ 9 ] [ 10 ]
フレームワークは、パフォーマンスのオーバーヘッド、バンドルサイズの増大、複雑性の増加につながる可能性のある抽象化レイヤーを導入することがあります。React 18 や Vue 3 などの最新のフレームワークは、同時レンダリング、ツリーシェイキング、選択的ハイドレーション などの機能でこれらの課題に対処しています。これらの進歩によりレンダリング効率とリソース管理は向上しますが、そのメリットは特定のアプリケーションと実装コンテキストによって異なります。SvelteやPreactなどの軽量フレームワークは、異なるアーキテクチャアプローチを採用しており、 Svelte は仮想 DOM を完全に排除してコンポーネントを効率的な JavaScript コードにコンパイルし、Preact は React と互換性のある最小限の代替手段を提供します。フレームワークの選択は、チームの専門知識、パフォーマンス目標、開発の優先順位など、アプリケーションの要件によって異なります。[ 8 ] [ 9 ] [ 10 ]
Enhance.dev、Astro、Freshなどの新しいカテゴリのWebフレームワークは、抽象化と開発ツールを最小限に抑えながら、ネイティブWeb標準を活用しています。[ 11 ] [ 12 ] [ 13 ] これらのソリューションは、プログレッシブエンハンスメント 、サーバーサイドレンダリング 、パフォーマンスの最適化を重視しています。Astroはデフォルトで静的HTMLをレンダリングし、インタラクティブな部分のみをハイドレートします。Freshは、ランタイムオーバーヘッドゼロのサーバーサイドレンダリングに重点を置いています。Enhance.devは、Webコンポーネントを使用してプログレッシブエンハンスメントパターンを優先します。これらのツールは、ロジックをビルド時またはサーバーサイド実行に移行することでクライアントサイドJavaScriptへの依存を減らしますが、インタラクティブ性のために必要な場合はJavaScriptを使用します。このアプローチにより、パフォーマンスが重要でコンテンツ重視のアプリケーションに特に適しています。[ 8 ] [ 9 ] [ 10 ]
注記 ↑ 「Enyo JSについて」 . enyojs.com . 2014年11月23日 取得。 ↑ 「Ext JS 7.3.0 ライセンス」 。sencha.com 。 2011年1月9日の オリジナル からアーカイブ済み 。 2020年 11月5日 取得。 ↑ 「ライセンス - Javascript、HTML5、jQuery Widgets」 。jqwidgets.com 。 2015年 12月17日 取得 。 1 2 3 4 5 script.aculo.us は Prototype のアドオンです。 ↑ "OpenUI5" . GitHub . 2020年 12月22日 取得 . ↑ 「JavaScript UI コンポーネントライブラリ Webix - ライセンス」 . webix.com . 2022年 6月1日 取得 。 ↑ 「ZK - 主要なエンタープライズ Java Web フレームワーク」 。ZK - Java Web フレームワーク 。2022 年 6 月 1 日 に取得。 1 2 3 Uzayr, Sufyan bin; Cloud, Nicholas; Ambler, Tim (2019年11月). JavaScript Frameworks for Modern Web Development: The Essential Frameworks, Libraries, and Tools to Learn Right Now . Apress. ISBN 978-1484249949 。1 2 3 Rojas, Carlos (2020年11月13日). Building Native Web Components: Front-End Development with Polymer and Vue.js. Apress. ISBN 978-1484259047 。1 2 3 Scherer, Justin (2020年2月28日). Hands-On JavaScript High Performance: Build faster web apps using Node.js, Svelte.js, and WebAssembly . Packt Publishing, Limited. ISBN 978-1838821098 。↑ 「Enhance」 . GitHub . ↑ 「Astro framework」 . GitHub . ↑ 「Fresh」 . GitHub . ↑ 将来のブラウザをサポートするために、ブラウザスニッフィングよりも機能検出を好む人が多い:ブラウザ検出 (および代わりに何をすべきか)、機能検出: 最新のブラウザスクリプティング、ブラウザ機能検出(2017年7月10日にWayback Machine に アーカイブ) ↑ "dojo/has – Dojo Toolkit - リファレンスガイド" . dojotoolkit.org . 1 2 3 「Ext JS 7.3.0 - Sencha Docs」 。 docs.sencha.com 。 ↑ 「 Google Code Archive - Google Codeプロジェクトホスティングの長期保存」 code.google.com . ↑ 「 Googleグループ」 .google.com . {{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)↑ jquery.org、jQuery Foundation - (2009年1 月 14日)。 「jQuery 1.3 リリース - 公式 jQuery ブログ」 。docs.jquery.com 。 ↑ "MooToolsブログ: MooTools Core 1.3 StableとMooTools More 1.3RC" . mootools.net . ↑ 特徴検出のすべて2009年4月21日にWayback Machine に アーカイブされました ↑ kangax (2010年4月5日). 「DOMを拡張することの何が問題なのか」 . 2010年 4月6日 取得 。 ↑ 「MooTools コアドキュメント 」 。mootools.net 。 ↑ "プロトタイプ API ドキュメント - 要素 (非推奨 URL)" . prototypejs.org . ↑ 「Prototype 2.0 は DOM を拡張しません - Ajaxian」 。ajaxian.com。2015 年 11 月 17 日。 1 2 AJAXとDojo 2010年2月9日にWayback Machine に アーカイブされました 1 2 "jQuery Data Adapter" . jqwidgets.com . 2015年 12月17日 取得 . 1 2 「MooTools コアドキュメント」 . mootools.net . ↑ Schäfer, Holger (2014年1月25日). "OpenUI5 Developer: UI5 WebSocketを使用したシンプルなチャットサーバーの例" . ↑ 「WebSockets (Faye) of Guides、サーバー側とのやり取り Webix Docs」 . docs.webix.com . 2018年8月3日の オリジナルからアーカイブ済み . 2016年 11月25日 取得 . 1 2 "CometD JavaScript | cometd.org" 。 2010年9月19日の オリジナルからアーカイブ済み 。 2010年 10月7日 に取得。 ↑ "kembuco/extjs-cometd" . GitHub . 2020年7月8日。 ↑ 「 Google Code Archive - Google Codeプロジェクトホスティングの長期保存」 code.google.com . ↑ 「ZK - 大手エンタープライズAjaxソリューション 」 ↑ "Dojox/Data - DojoCampus - Docs" 。 2009年3月17日の オリジナルからアーカイブ済み 。 2009年 4月23日 取得。 ↑ "Dojo/DND - DojoCampus - Docs" 。 2009年4月6日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ "fredsa/gwt-dnd" . GitHub . 2022年2月8日。 ↑ js.foundation、JS Foundation -。 「 ドラッグ可能 - jQuery UI」 。jqueryui.com 。 ↑ "jQuery DragDrop Plugin" . jqwidgets.com . 2015年 12月17日 取得 . ↑ 「MooTools の その他のドキュメント」 。mootools.net 。 ↑ 「OpenUI5 SDK - デモ キット v2.0」 。 openui5.hana.ondemand.com 。 ↑ 「UIウィジェットのドラッグアンドドロップサポート、ツリーWebixドキュメント 」 。docs.webix.com 。 ↑ "Dojo/Fx - DojoCampus - Docs" 。 2009年4月16日の オリジナルからアーカイブ済み 。 2009年 4月23日 取得。 ↑ 「MooTools コアドキュメント 」 。mootools.net 。 1 2 「ショーケース」 . showcase.sproutcore.com . ↑ "transition: • Docs • Svelte" 。 ↑ "Dojox/Fx - DojoCampus - Docs" 。 2009年3月4日に オリジナルからアーカイブされました。 2009年 4月23日 に取得 。 ↑ 「Enyo API リファレンス」 . enyojs.com . 2013 年 12 月 20 日時点の オリジナルからアーカイブ済み。2012 年 8 月 1 日 取得 。 ↑ 「MooTools コアドキュメント 」 。mootools.net 。 ↑ 「ガイドのアニメーション、スタイリング、アニメーション Webix Docs」 . docs.webix.com . ↑ "Dojo/Back - DojoCampus - Docs" 。 2009年4月2日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ 「Enyo API Viewer」 . enyojs.com . 2016年3月24日の オリジナルからアーカイブ済み。 2014年 4月24日 取得 。 ↑ 「v2.2以降」 。 2010年12月29日に オリジナルからアーカイブ済み 。 2010年 9月11日 に取得。 ↑ Asual。 「Asual 」 。asual.com 。 ↑ "cpojer/mootools-history" . GitHub . 2021年10月10日。 ↑ "Dijit/Form - DojoCampus - Docs" 。 2009年4月3日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ 「GWT による入力検証」 。2011 年 7 月 20 日の オリジナルからアーカイブ済み。2018 年 10 月 11 日 取得 。 ↑ js.foundation、JS Foundation -。 「jQueryプラグインレジストリ 」 。plugins.jquery.com 。 ↑ "jQuery Validator" . jqwidgets.com . 2015年 12月17日 取得 . ↑ 「ガイドのデータ検証、コンポーネントでのデータ管理 Webix Docs」 . docs.webix.com . ↑ 「UI コントロールの書式付きテキスト入力、 Webix ドキュメント」 。docs.webix.com 。 ↑ "Dojox/Grid - DojoCampus - Docs" 。 2009年4月23日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ "jqGrid ShieldUI jQuery Grid" 。 ↑ "jQuery Grid、JavaScript Grid、jqxGrid、DataGrid、jQuery DataGrid" . jqwidgets.com . 2015年 12月17日 取得 . ↑ "JxLibライブラリ" 。 2009年2月18日に オリジナルからアーカイブされました 。 2008年 11月18日 に取得。 または「ソート可能なテーブルプラグイン」 。phatfusion。 2009年4月22日に オリジナル からアーカイブされました。 または「DrasticGrid」 。 2017年4月15日に オリジナル からアーカイブされました 。 2009年 5月22日 に取得。 ↑ "JavaScript テーブル (グリッド) ウィジェット – Webix HTML DataTable" . webix.com . ↑ "Dijit/Tree - DojoCampus - Docs" 。 2009年5月9日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ 「Enyo JavaScript Framework - 例 - DiscoverSDK コード例」 。 ↑ "Sencha - Ext JS 7.3.0 Examples" . sencha.com . 2014年5月12日の オリジナルからアーカイブ済み。 2012年 8月5日 取得 。 ↑ 「treeview」 。2008年10月9日に オリジナル からアーカイブされました 。 、"file_tree_viewer" 。 2008年7月18日に オリジナル からアーカイブされました。 ↑ "jQuery Tree" . jqwidgets.com . 2015年 12月17日 取得 . ↑ "mootree" . sites.google.com . 2016年9月11日に オリジナルからアーカイブ済み 。 2008年 11月18日 に取得。 ↑ 「デモブラウザ」 。 2016年4月2日に オリジナル からアーカイブ済み 。 2008年 10月3日 に取得。 ↑ 「 ツリーテーブルまたはツリーグリッド - jQuery統合付きWebix HTML5ライブラリ」 .webix.com . ↑ "Dijit/Editor - DojoCampus - Docs" 。 2009年4月16日の オリジナルからアーカイブ済み。 2009年 4月23日 取得 。 ↑ 「 HTMLエディター」 .sencha.com . ↑ markitup、 jwysiwyg、 htmlbox は、2009年7月7日にWayback Machine に アーカイブされました。WYMeditorは、 2008年6月3日にWayback Machine に アーカイブされました。 1 2 "jQuery Editor" . jqwidgets.com . 2015年 12月17日 取得 . ↑ "MooEditable" . cheeaun.github.com . 2013年3月1日に オリジナルからアーカイブ済み 。 2017年 9月19日 に取得。 ↑ 「リッチテキスト - リッチテキスト コントロールのドキュメント: 概要と初期化。Webix Docs 」 。docs.webix.com 。 ↑ "Dijit/Form/ComboBox - DojoCampus - Docs" 。 2009年4月18日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ js.foundation、JS Foundation -。 「オートコンプリート - jQuery UI」 。jqueryui.com 。 ↑ "jQuery Input、jQuery Auto Complete" . jqwidgets.com . 2015年 12月17日 取得 . ↑ "AutoCompleter » digitarald:Harald Kirschner" . digitarald.de . 2017年10月23日の オリジナル からアーカイブ済み。 2008年 4月25日 取得 。 ↑ Dojo 1.3 以降では、NodeList.addContent() API を使用してコンテンツを作成できます。例: dojo.query(".note").addContent("h4 NOTE: h4", "before"); ↑ MooTools Elements は、 2008年9月5日にWayback Machine に アーカイブされました。 ↑ UAB、Dinamenta。 「 JavaScript UIライブラリ、Ajaxコンポーネント、HTML5フレームワーク - オンラインスキンビルダー」 。dhtmlx.com 。 ↑ 「ブログ」 。2015年2月26日。 ↑ 「スタイルシートを使用したGWTコントロールのスキン設定」 。 2008年9月12日の オリジナルからアーカイブ済み 。 2015年 3月17日 取得。 ↑ js.foundation、JS Foundation -。 「 ThemeRoller - jQuery UI」 。jqueryui.com 。 ↑ 「最高のJavaScriptフレームワーク」 。2019年9月16日。 ↑ "jQuery ウィンドウ" . jqwidgets.com . 2015 年 12 月 17 日 取得 . 1 2 MochaUIライブラリ または JxLib の使用2009年2月18日に米国議会図書館 ウェブアーカイブ に アーカイブされました 1 2 「ZK Studio で WYSIWYG 開発を体験」 。2008年 10 月 12 日に オリジナル からアーカイブされました 。2011 年 4 月 27 日 に取得。 ↑ 「 Google Code Archive - Google Codeプロジェクトホスティングの長期保存」 code.google.com . ↑ "jQuery Docking Layout" . jqwidgets.com . 2015年 12月17日 取得 . ↑ "jQuery Splitter" . jqwidgets.com . 2015年 12月17日 取得 . ↑ 「Webアプリ開発者向けJavaScriptレイアウトライブラリWebix 」 。webix.com 。 ↑ dojo.gfx 2009年3月9日にWayback Machine に アーカイブされました ↑ "jCanvas" . jCanvas . 1 2 "jQuery Draw Plugin" . jqwidgets.com . 2015年 12月17日 取得 . ↑ 「Mocha UI – MooTools Canvas UI クラス - Ajaxian」 。ajaxian.com 。 2015年11月17日。 1 2 「ZK - 大手エンタープライズAjaxソリューション」 。 ↑ 「Dojoの新しいモバイルアプリプロジェクト」 。2010年6月13日。 ↑ 「 Google Code Archive - Google Codeプロジェクトホスティングの長期保存」 code.google.com . ↑ "jQT" . jQT . ↑ "jQWidgets モバイルデモ" . jqwidgets.com . 2015年 12月17日 取得 . ↑ "cpojer/mootools-mobile" . GitHub . 2021年10月10日。 ↑ "ZK - 主要なエンタープライズ Java Web フレームワーク" 。 ZK - Java Web フレームワーク 。 ↑ Webixのモバイル/タブレットサポート ↑ すべての JavaScript フレームワークは、グレースフル デグラデーションを使用してアクセシブルな方法で記述できます。ここで紹介されている、すぐに使用できるアクセシビリティを暗示しているフレームワークは、それぞれのフレームワークのベスト プラクティスを文書化するために特別な努力を払っています。 1 2 "Quickstart/WritingWidgets/A11y - DojoCampus - Docs" 。 2009年4月6日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ 「GWT 1.5 アプリケーションに組み込まれたアクセシビリティ」 。 1 2 3 「jQWidgets アクセシビリティ概要」 jqwidgets.com 2015 年 12 月 17 日 取得 . ↑ Qooxdooの「エクストリームJavaScript」パラダイム( 2008年10月12日にWayback Machine に アーカイブ済み) ↑ 「ガイドのアクセシビリティ、Webix Docs のユーザーインターフェースの設計 」 。docs.webix.com 。 ↑ js.foundation、JS Foundation -。 「jQuery UI について - jQuery UI」 。jqueryui.com 。 ↑ "コンパイラ警告 • ドキュメント • Svelte" . ↑ 「ガイドのアクセシビリティ、Webix Docs のユーザーインターフェースの設計 」 。docs.webix.com 。 ↑ ウェーブメーカー ↑ アプタナ スタジオ↑ 「HP webOS開発者ブログ」 。 2012年7月9日に オリジナル からアーカイブ済み 。 2012年 8月5日 に取得。 ↑ 「煎茶アーキテクト」 2015年3月25日 ↑ 「ブログ」 。2015年2月26日。 ↑ 「Sencha Ext JS」 。 2020年11月5日。 ↑ troy.giunipero@sun.com、lloyd.dunn @ sun.com。 「jQuery を使用して Web ページの外観とユーザビリティを向上させる - NetBeans チュートリアル」 。netbeans.org。2017 年 7 月 12 日に オリジナル からアーカイブ済み。2010 年 2 月 9 日 に取得 。 ↑ js.foundation、JS Foundation -。 「 jQuery API ドキュメント」 。api.jquery.com 。 ↑ 「jQWidgets 用テーマビルダー」 。jqwidgets.com 。 2015年 12月17日 取得 。 ↑ "ßeta - jQWidgets Charts Studio" . jqwidgets.com . 2015年 12月17日 取得 . ↑ "JSEditor" . jqwidgets.com . 2015年 12月17日 取得 . ↑ 「MooTools-core ドキュメント」 。2009 年 10 月 2 日時点の オリジナルからアーカイブ済み。2009 年 10 月 14 日 取得 。 ↑ 「MooTools-more Document」 。 2009年10月4日に オリジナルからアーカイブされました 。 2009年 10月14日 に取得。 ↑ カスタムビルド、JSリンカー、API生成、単体テストフレームワークなど。 2008年7月25日にWayback Machine に アーカイブされました。 ↑ 「 Webix Skin Builder」 。webix.com 。 ↑ "フォームビルダー" . webix.com . ↑ 現在のJavaScriptフレームワークは、 Google Gears などのプリインストールされたブラウザ拡張機能を利用することでオフラインストレージをサポートする機能しか持っていません。ユーザーがこれらのサポートされている拡張機能のいずれかをブラウザにインストールしていない場合、フレームワークはオフラインサポートを利用できません。Gearsの実装に関心のあるJavaScriptフレームワーク開発者は、Gears入門ガイドから始めることをお勧めします。 ↑ o.DojoToolkit.Org/offline は、2010年2月10日にWayback Machine に アーカイブされており、「Dojo OfflineはDojo 1.3以降サポートされなくなりました」と記載されています。 ↑ 「Ext JS 7.3.0 - Sencha ドキュメント」 。 docs.sencha.com 。 ↑ "googlearchive/gwt-google-apis" . GitHub . 2021年4月24日。 ↑ "jQuery HTML5 Storage プラグイン - daveschindler" . sites.google.com . 2017 年 3 月 4 日の オリジナルからアーカイブ済み。2012 年 10 月 15 日 取得 。 ↑ 「この例は 、 グリッドの状態を保存/読み込む方法を示しています」 。jqwidgets.com 。 2015年 12月17日 取得 。 ↑ 一部のJavaScriptライブラリは、クロスブラウザ対応のベクターグラフィックスに使用できる2Dグラフィックスプリミティブを提供します。これらのライブラリは、ブラウザの基盤となるテクノロジーやCanvas、SVG、VML、Flash、Silverlightなどのプラグインを利用して実際のレンダリングを行いますが、アプリケーションコードとウィジェットコードをレンダリングエンジンのAPIの違いから分離するのに役立ちます。 ↑ "Dojox/GFX - DojoCampus - Docs" 。 2009年3月9日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ jQuery SVGプラグイン ↑ 「カミカネ/アート」 . GitHub 。 2021年2月26日。 ↑ 「チャート統合 - サードパーティチャート統合ガイド。Webix Docs 」 。docs.webix.com 。 ↑ 一部のJavaScriptライブラリには、チャート、ゲージ、その他のデータ視覚化のためのウィジェットが含まれています。 ↑ "Dojox/Charting - DojoCampus - Docs" 。 2009年3月3日に オリジナルからアーカイブされました 。 2009年 4月23日 に取得。 ↑ チャートAPI ↑ "Flot: jQuery 用の魅力的な JavaScript プロット" . flotcharts.org . ↑ jQuery Visualizeプラグイン( 2009年7月9日、 Wayback Machine に アーカイブ済み) ↑ "jqxChart - jQuery、HTML5、SVG を利用した JavaScript チャートウィジェット" . jqwidgets.com . 2015 年 12 月 17 日 取得 . ↑ "jQuery Gauge" . jqwidgets.com . 2015年 12月17日 取得 . ↑ 「ZK ライブデモ - その他のチャート」 。 ライブデモ - ZK Web アプリケーションフレームワーク 。 ↑ "JavaScript Charts UI Widget - Webix JS Charts" . webix.com . 1 2 3 4 "Releasenotes/1.4 - DojoCampus - Docs" 。 2010年2月8日に オリジナルからアーカイブされました 。 2009年 12月17日 に取得。 1 2 3 4 「サポートされているプラットフォーム | Enyo JS」 。 2012年7月23日に オリジナルからアーカイブされました 。 2012年 7月26日 に取得。 ↑ 「Sencha Ext JS」 。 2020年11月5日。 1 2 3 4 5 js.foundation 、JS Foundation -。 「ブラウザサポート - jQuery」 。docs.jquery.com 。 1 2 3 4 5 "jQuery UI Widgets - ヘルプドキュメント" . jqwidgets.com . 2015年 12月17日 取得 . ↑ 「OpenUI5SDK - デモキット」 。openui5.hana.ondemand.com 。 2021年 3 月22日 取得 。 1 2 3 4 5 6 「互換性 Webix ドキュメント」 . docs.webix.com .