1. 反応するReact (React.js または ReactJS とも呼ばれます) は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。これは、Facebook と個々の開発者および企業のコミュニティによって管理されています。 React は、シングルページ アプリケーションまたはモバイル アプリケーションを開発するための基盤として使用できます。ただし、React はデータを DOM にレンダリングすることのみを目的としているため、React アプリケーションを作成するには、通常、状態管理とルーティングのための追加のライブラリを使用する必要があります。Redux や React Router は、そのようなライブラリの例です。 基本的な使い方以下は、HTML で JSX と JavaScript を使用する React の簡単な例です。 Greeter 関数は、prop greeting を受け入れる React コンポーネントです。変数 App は Greeter コンポーネントのインスタンスであり、greeting プロパティは「Hello World!」に設定されています。次に、ReactDOM.render メソッドは、DOM 要素 (id は myReactApp) 内の Greeter コンポーネントをレンダリングします。 Web ブラウザで表示すると、結果は次のようになります。 注目すべき機能コンポーネント化 React コードは、コンポーネントと呼ばれるエンティティで構成されています。 React DOM ライブラリを使用して、コンポーネントを DOM 内の特定の要素にレンダリングできます。コンポーネントをレンダリングするときに、「props」と呼ばれる値を渡すことができます。 React でコンポーネントを宣言する主な 2 つの方法は、関数コンポーネントとクラスベース コンポーネントです。 機能コンポーネント 関数コンポーネントは、JSX を返す関数を使用して宣言されます。 クラスコンポーネントクラスベースのコンポーネントは、ES6 クラスを使用して宣言されます。これらのコンポーネントの状態はコンポーネント全体で保持され、props を介して子コンポーネントに渡すことができるため、「ステートフル」コンポーネントとも呼ばれます。 仮想DOMReact のもう一つの注目すべき機能は、仮想ドキュメント オブジェクト モデル、つまり仮想 DOM を使用することです。 React はメモリ内のデータ構造キャッシュを作成し、変更の差分を計算し、実際に変更されたサブコンポーネントのみをレンダリングすることで、ブラウザに表示される DOM を効率的に更新します。 ライフサイクルメソッドライフサイクル メソッドとは、コンポーネントのライフサイクル中に設定されたポイントでコードを実行できるようにするフック処理関数を指します。
JSXJSX (JavaScript XML) は、JavaScript 言語構文の拡張です。 JSX は見た目が HTML に似ており、開発者に馴染みのある構文を使用してコンポーネントのレンダリングを構造化する方法を提供します。 React コンポーネントは JSX を使用して記述されることが多いですが、必ずしもそうである必要はありません (コンポーネントは純粋な JavaScript で記述することもできます)。 JSX は、Facebook が PHP 用に作成した XHP と呼ばれる別の拡張構文に似ています。 JSX コードの例: ネストされた要素 同じレベルにある複数の要素は、上の図の <div> 要素のようなコンテナ要素でラップする必要があります。 財産 JSX は、HTML によって提供される属性に対応することを目的とした要素属性のセットを提供します。これらのカスタム プロパティもコンポーネントに渡すことができ、すべてのプロパティはコンポーネントによって props として受け取られます。 JavaScript 式中括弧 {} を使用して、JSX 内で JavaScript 式 (ステートメントではない) を使用できます。 上記コードの表示結果は次のとおりです。 条件文 JSX では if-else ステートメントは使用できませんが、代わりに条件式を使用できます。次の例では、i が 1 の場合、{ i === 1 ? 'true' : 'false' } を文字列 'true' としてレンダリングします。 結果は次のようになります: 条件式では関数と JSX を使用できます。 結果は次のようになります: JSX で記述されたコードは、Web ブラウザーで理解できるようにするには、Babel などのツールで変換する必要があります。この処理は通常、ソフトウェアのビルド プロセス中に実行され、その後、ビルドされたアプリケーションがデプロイされます。 HTML を超えたアーキテクチャReact の基本的なアーキテクチャは、ブラウザで HTML をレンダリングするためだけのものではありません。たとえば、Facebook には <canvas> タグにレンダリングされる動的チャートがありますが、Netflix と PayPal はユニバーサル ローディングを使用して、サーバーとクライアントの両方で同じ HTML をレンダリングします。 Reactフックフックは、開発者が関数コンポーネントから React の状態とライフサイクル機能に「フック」できるようにする関数です。コードの読みやすさと理解しやすさが向上します。フックはクラス コンポーネント内では機能しません。その最終的な目的は、React でクラス コンポーネントの存在を排除することです。 React には、useState、useContext、useReducer、useEffect などの組み込みフックがいくつか用意されています。これらはすべて、Hooks API リファレンスに記載されています。最もよく使用されるのは useState と useEffect で、それぞれ React コンポーネントの状態を制御し、状態の変化を検出します。 フックのルールフックには、フックを使用する前に従う必要があるいくつかのルールもあります。
独自のフック (カスタム フックとも呼ばれます) を構築すると、コンポーネント ロジックを再利用可能な関数に抽出できます。カスタム フックは、名前が「use」で始まり、他のフックを呼び出すことができる JavaScript 関数です。これらにはフックと同じルールが適用されます。 一般的な用語React は完全な「アプリケーション ライブラリ」を提供しようとはしません。これはユーザー インターフェイスの構築に特化して設計されているため、一部の開発者がアプリケーションの構築に必要だと考えるツールの多くは含まれていません。これにより、開発者は任意のライブラリを選択して、ネットワーク アクセスやローカル データ ストレージの実行などのタスクを実行できます。この状況により、Web アプリケーションを作成するときに React テクノロジの標準を統一できないことも判明します。 Fluxアーキテクチャの使用React の単方向データフローの概念 (AngularJS/Angular の双方向データフローとは対照的) をサポートするために、Flux アーキテクチャは、一般的なモデル ビュー コントローラー (MVC) アーキテクチャの代表的な代替手段です。 Flux の特徴は、データ アクションが中央ディスパッチャーを介してストレージ ウェアハウスに送信され、ストレージ ウェアハウス データの変更がビューに送り返されることです。 React で使用する場合、この転送はコンポーネントのプロパティを介して行われます。 Flux は、Observer パターンのバリエーションと考えることができます。 Flux アーキテクチャの React コンポーネントは、渡されたプロパティを直接変更するのではなく、ディスパッチャによって送信されたデータ アクションを作成してストアを変更できるコールバック関数を渡す必要があります。データ アクションは、発生した事柄を説明するオブジェクトです。たとえば、データ アクションは、ユーザーが別のユーザーを「フォロー」していることを説明します。次のようなデータが含まれる場合があります: ユーザーID、 対象ユーザーID、 そして、USER_FOLLOWED_ANOTHER_USER 列挙型。 リポジトリは、スケジューラから受信したデータ アクションに基づいて自身を変更できるデータ モデルです。 このパターンは、「属性は下方向に流れ、データ アクションは上方向に流れる」と表現されることもあります。 Flux の誕生以来、多くの Flux 実装が作成されてきましたが、その中で最も有名なのは、単一のストレージ リポジトリ (データの唯一の真実のソースとも呼ばれる) を備えた Redux です。 歴史React は Facebook のソフトウェア エンジニアである Jordan Walke によって作成され、PHP の HTML コンポーネント ライブラリ XHP に触発されて「FaxJS」と呼ばれる React の初期のプロトタイプをリリースしました。これは2011年にFacebookのニュースフィードに初めて導入され、その後2012年にInstagramにも導入されました。 2013 年 5 月に米国で開催された JSConf カンファレンスでオープンソース化されました。 React Native は、2015 年 2 月に Facebook の React Conf で発表され、2015 年 3 月にオープンソース化され、ネイティブ Android、iOS、UWP 開発が可能になりました。 2017 年 4 月 18 日、Facebook は、ユーザー インターフェイスを構築するための React ライブラリの新しいコア アルゴリズムである React Fiber を発表しました。React Fiber は、React ライブラリの今後の改善と機能開発の基盤となります。 2017 年 9 月 26 日に、React 16.0 が正式にリリースされました。 2019 年 2 月 16 日に、React Hooks を導入した React 16.8 が正式にリリースされました。 一般的なコマンドプロジェクトを作成します。
開発環境操作:
実稼働環境のパッケージ化:
【公式サイト】 http://react.org/ より 【最新バージョン】 2020年3月19日 16.13.1 【認可】 MITライセンス 角度Angular (多くの場合、「Angular 2+」または「Angular v2 以上」と呼ばれます) は、Google の Angular チームと個人および企業のコミュニティが主導する、オープン ソースの TypeScript ベースの Web アプリケーション フレームワークです。 Angular は、AngularJS を構築した同じチームによってゼロから書き直されました。 AngularとAngularJSの違い
(1)ジェネリックを含む静的型付け (2)注記
歴史名前 当初、AngularJS の書き直しは「Angular 2」と呼ばれていましたが、開発者の間で混乱が生じました。明確にするために、チームはフレームワークごとに異なる用語が使用され、「AngularJS」はバージョン 1.X を指し、「Angular」はバージョン 2 以上を指すと発表しました。 バージョン2 Angular 2.0 は、2014 年 10 月 22 日〜 23 日に開催された ng-Europe カンファレンスで発表されました。バージョン 2.0 での大幅な変更は開発者の間でかなりの論争を引き起こしました。 2015 年 4 月 30 日、Angular 開発者は、Angular 2 がアルファ版から開発者プレビュー版に移行することを発表しました。2015 年 12 月、Angular 2 はベータ版に移行しました。最初のリリース候補は 2016 年 5 月にリリースされ、最終バージョンは 2016 年 9 月 14 日にリリースされました。 バージョン4 ルーターパッケージのバージョンの不一致による混乱を避けるため、3をスキップして、2016年12月13日にAngular 4がリリースされました。その際にリリースされたバージョンはv3.3.0でした。最終バージョンは 2017 年 3 月 23 日にリリースされました。Angular 4 は Angular 2 と下位互換性があります。 Angular 4.3 バージョンは、4.xx バージョンの代替となるマイナー リリースです。 バージョン 4.3 では、より小型で使いやすく、より強力な HTTP リクエスト ライブラリである HttpClient が導入されました。キーパーとリゾルバーの新しいルーターライフサイクルイベント。 4つの新しいイベント。 GuardsCheckStart、GuardsCheckEnd、ResolveStart、および ResolveEnd は、NavigationStart などの既存のライフサイクル イベント セットに加わります。条件付きでアニメーションを無効にします。バージョン 5 Angular 5 は 2017 年 11 月 1 日にリリースされました。Angular 5 の主な改善点には、プログレッシブ ウェブ アプリケーションのサポート、ビルド オプティマイザー、マテリアル デザインに関連する改善点などがあります。 バージョン 6 Angular 6は2018年5月4日にリリースされました。このバージョンでは、基盤となるフレームワークではなく、ツール チェーンに重点が置かれており、ngupdate、ng add、Angular 要素、Angular Material+CDK コンポーネント、Angular Material スターター コンポーネント、CLI ワークスペース、ライブラリ サポート、ツリー シェイキング プロバイダー、アニメーション パフォーマンスの改善、RxJS v6 など、将来の Angular の更新とアップグレードが容易になります。 バージョン 7 Angular 7は2018年10月18日にリリースされました。アップデートには、アプリケーションのパフォーマンス、Angular Material と CDK、仮想スクロール、Select のアクセシビリティの改善、カスタム要素の Web 標準を使用したコンテンツ投影のサポート、Typescript 3.1、RxJS 6.3、Node 10 (Node 8 も引き続きサポートされます) の依存関係のアップデートが含まれます。 バージョン 8 Angular 8は2019年5月28日にリリースされました。すべてのアプリケーション コードの差分読み込み、遅延ルーティングの動的インポート、Web ワーカー、TypeScript 3.4 のサポートを備えており、Angular Ivy はプレビューとして利用できます。角度 Ivy プレビューには以下が含まれます:
バージョン9 Angular 9は2020年2月6日にリリースされました。バージョン 9 では、デフォルトで Ivy コンパイラが使用されます。 Angular は TypeScript 3.6 および 3.7 と互換性があります。数百のバグ修正に加えて、Ivy コンパイラとランタイムには多くの利点があります。
コンポーネント化コンポーネントの例 HTML部分 タイプスクリプト部分 ルーティング データ管理サービスクラスの定義 通話サービスクラス 一般的なコマンドターミナルから、Angular CLI をグローバルにインストールします。
ng new コマンドを使用して新しい Angular CLI ワークスペースを作成します。
開発環境操作:
実稼働環境のパッケージ化:
【公式サイト】 出典: 【最新バージョン】 2020年4月15日の9.1.2 【認可】 MITライセンス 3. ビューVue.js (多くの場合、単に Vue と呼ばれます。発音は「view」のように /vjuː/ です) は、ユーザー インターフェイスとシングル ページ アプリケーションを構築するためのオープン ソースのモデル ビュー ビューモデル JavaScript フレームワークです。これは Evan You によって作成され、彼と Netlify や Netguru を含むさまざまな企業のコアメンバーによって保守されています。 概要Vue.js の特徴は、プログレッシブアーキテクチャを採用し、宣言型レンダリングとコンポーネント合成に重点を置いていることです。ルーティング、状態管理、ビルド ツールなど、複雑なアプリケーションに必要な高度な機能は、公式に管理されているサポート ライブラリとパッケージを通じて提供され、Nuxt.js は最も人気のあるソリューションの 1 つです。 Vue.js では、ディレクティブと呼ばれる HTML 属性を使用して HTML を拡張できます。 歴史Vue は Evan You によって作成されました。 Google 在籍中、AngularJS 技術を使用した複数のプロジェクトの開発に参加し、後に Vue を作成しました。彼は後に自分の思考過程を要約した。 「AngularJS の本当に優れた部分を利用して、軽量なものを作れたらどうなるだろうと考えました。」プロジェクトへの最初のソース コードのコミットは 2013 年 7 月で、Vue は 2014 年 2 月に初めてリリースされました。 コンポーネント化Vue コンポーネントは基本的な HTML 要素を拡張して、再利用可能なコードをカプセル化します。高レベルの観点から見ると、コンポーネントは Vue コンパイラが動作をアタッチするカスタム要素です。 Vue では、コンポーネントは基本的に、事前設定されたオプションを持つ Vue インスタンスです。次のコード スニペットには、Vue コンポーネントの例が含まれています。このコンポーネントはボタンを表示し、ボタンがクリックされた回数を出力します。 テンプレートVue は HTML ベースのテンプレート構文を使用して、レンダリングされた DOM を Vue インスタンスの基になるデータにバインドできるようにします。すべての Vue テンプレートは有効な HTML であり、準拠したブラウザと HTML パーサーによって解析できます。 Vue はテンプレートを仮想 DOM レンダリング関数にコンパイルします。仮想ドキュメント オブジェクト モデル (または「DOM」) により、Vue はブラウザーを更新する前にメモリ内でコンポーネントをレンダリングできます。リアクティブ システムと組み合わせることで、Vue は再レンダリングする必要があるコンポーネントの最小数を計算し、アプリの状態が変化したときに最小限の DOM 操作を開始できます。 Vue ユーザーはテンプレート構文を使用することも、JSX を使用してレンダリング関数を直接記述することもできます。これにより、ソフトウェア コンポーネントからアプリケーションを構築できます。 反応システムVue は、純粋な JavaScript オブジェクトと最適化された再レンダリングを使用するリアクティブ システムを備えています。各コンポーネントはレンダリング中にリアクティブ依存関係を追跡するため、システムは再レンダリングするタイミングと、再レンダリングが必要なコンポーネントを正確に把握できます。 変換効果Vue は、DOM にアイテムが挿入、更新、または削除されるときに遷移効果を展開するためのさまざまな方法を提供します。これには次のツールが含まれます。
変換コンポーネント内の要素が挿入または削除されると、次のことが起こります。
ルーティングシングルページ アプリケーション (SPA) の従来の欠点の 1 つは、特定の Web ページ内の正確な「サブ」ページへのリンクを共有できないことです。 SPA はユーザーに単一の URL ベースのサーバー応答のみを提供するため (通常は index.html または index.vue を提供する)、特定の画面をブックマークしたり、特定のセクションへのリンクを共有したりすることが困難または不可能になることがよくあります。この問題を解決するために、多くのクライアント側ルーターは「ハッシュバン」(#!) を使用して、http://page.com/#!/ などの動的 URL を区切ります。ただし、HTML5 では、ほとんどの最新ブラウザがハッシュバンなしのルーティングをサポートしています。 Vue は、現在の URL パスに基づいてページに表示されるコンテンツを変更するためのインターフェイスを提供します。これは、さまざまな方法 (電子メール リンク、更新、ページ内リンクなど) で実行できます。さらに、フロントエンド ルーターを使用すると、ボタンやリンクで特定のブラウザー イベント (クリックなど) が発生したときに、ブラウザー パスを意図的に遷移させることができます。 Vue 自体にはフロントエンド ルーティングは付属していません。しかし、オープンソースの「vue-router」パッケージは、アプリケーションの URL を更新するための API を提供し、戻るボタン (ナビゲーション履歴) をサポートし、電子メールのパスワード リセットまたは電子メール検証リンクの認証 URL パラメータをサポートします。ネストされたルートをネストされたコンポーネントにマッピングすることをサポートし、きめ細かい遷移制御を提供します。 vue-router を追加すると、コンポーネントは所属するルートにのみマッピングする必要があり、親/ルート ルートは子ルートをレンダリングする場所を示す必要があります。 上記のコード:
エコシステムコア ライブラリに付属するツールとライブラリは、コア チームと貢献者によって開発されています。 公式ツール
公式図書館
一般的なコマンドインストールツール
プロジェクトを作成します。
開発環境操作:
実稼働環境のパッケージ化: npm 実行ビルド 【公式サイト】 https://vue.js.org/ より 【最新バージョン】 2019年12月13日の2.6.1 【認可】 MITライセンス IV. 要約この記事では、現在のトップ フロントエンド テクノロジーについて比較的詳細に説明します。フロントエンド テクノロジーの主な方向性は、シングル ページ アプリケーション (SPA) です。このビジネス向けのフロントエンド テクノロジーを選択する際には、次の点を考慮する必要があります。 1. メンバーの現在のスキル。これは非常に現実的な問題です。ほとんどのプログラマーは、より慣れているテクノロジーを選択します。ここで、現在使い慣れているテクノロジーが最良の選択肢であるかどうかを考える必要があります。 2. 利用可能な学習時間。使用したいテクノロジーを学習するのに時間がかかることがわかった場合、この時間的支出は開発の進捗と矛盾しますか? 3. プロジェクトの複雑さを最小限に抑えられるかどうかが重要な要素です。高度なテクノロジーが高度な理由は、開発者が実際のビジネス開発に時間とエネルギーを集中できるようにするためです。使用するテクノロジーに、ビジネスに関係のない多くの構成が必要な場合は、「もっと良い方法はないか」と自問する必要があります。 以上がReact、Angular、Vueの3大フロントエンド技術の詳しい説明です。React、Angular、Vueの3大フロントエンド技術についてさらに詳しく知りたい方は、123WORDPRESS.COMの関連記事もぜひご覧ください! 以下もご興味があるかもしれません:
|
<<: Linux で同じバージョンの R を使用して Seurat2 と Seurat3 を同時にインストールするチュートリアル
>>: MySQL 8.0.12 のインストールと設定方法のグラフィックチュートリアル
UNIONの使用ほとんどの SQL クエリは、1 つ以上のテーブルからデータを返す単一の SELEC...
JS アニメーションの代わりに CSS アニメーションを使用する必要があるのはなぜですか? Java...
MySQL のインストールに関する以前のメモを要約して、皆さんと共有しました。ステップ 1: mys...
ウェブサイトのレイアウトの多様化は、当社のフロントエンドの得意分野です。最近、UC ブラウザのデフォ...
textarea タグはよく使われる HTML タグです。主に長いテキストを入力するときに改行するた...
CSS は Web ページの印刷スタイルを制御します。 CSS を使用して印刷スタイルを制御します。...
この記事の例では、リストのシームレスなスクロールを実現するためのvueの具体的なコードを参考までに共...
この記事の例では、タイムライン再生コンポーネントを実装するためのVUEの具体的なコードを参考までに共...
序文最近、プロジェクトで :first-child を使用したのですが、すぐに思いつきました。これは...
外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...
長い間ブログを書いていませんでした。先週、プロジェクトをテストしたところ、いくつかのバグが見つかりま...
背景検索エンジンで「.htaccess キャッシュ」というキーワードを検索すると、ウェブサイトのファ...
私が使用している VMware Workstation Pro のバージョンは次のとおりです。 1....
要件: IIS 7、7.5、8.0、8.5、および ASP.NET で HTTP 応答ヘッダーを削除...
「アダプティブ Web デザイン」はどのように機能しますか?実はそれほど難しいことではありません。 ...