React 入門レベルの詳細なメモ

React 入門レベルの詳細なメモ

1. Reactの基本的な理解

1. はじめに

ReactはFacebookがオープンソース化したユーザーインターフェース(ビューのみに焦点を当てた)を構築するためのJavaScriptライブラリです。

2. Reactの特徴

  • 宣言的
  • コンポーネントベース
  • 一度学べばどこでも書ける(クライアントとサーバーのレンダリングをサポート)
  • 効率的
  • 一方向のデータフロー

3. Reactが効率的な理由

  • 仮想DOM、必ずしもDOMを直接操作するわけではない
  • DOM Diffアルゴリズム、ページの再描画を最小限に抑える

2. Reactの基本的な使い方

1. 関連するjsライブラリ

  • `react.js`: Reactのコアライブラリ
  • `react-dom.js`: DOMを操作するためのReact拡張ライブラリを提供します
  • `babel.min.js`: JSX 構文コードを純粋な JS 構文コードに解析するライブラリ

2. ページにjsライブラリをインポートする

<script src="../js/react.development.js"></script>
<script src="../js/react-dom.development.js"></script>
<script src="../js/babel.min.js"></script>

3. コーディング

<script type="text/babel"> //babelを宣言する必要があります
  // 1. 仮想 DOM 要素を作成します。const vDom = <h1>Hello React</h1> // 引用符を追加しないでください。// 2. 仮想 DOM をページの実際の DOM コンテナーにレンダリングします。ReactDOM.render(vDom, document.getElementById('test'))
</スクリプト>

リアクトJSX

1. 仮想DOM

Reactは特別な一般的なjsオブジェクトを作成するためのAPIをいくつか提供しています

var 要素 = React.createElement('h1', {id:'myTitle'},'hello')

上記で作成されたのは単純な仮想DOMオブジェクトです

仮想DOMオブジェクトは最終的にReactによって実際のDOMに変換されます。

コーディングするときは、基本的にReactの仮想DOM関連データを操作するだけでよく、Reactはそれを実際のDOMの変更に変換し、インターフェースを更新します。

2. JSX

  • フルネーム: `JavaScript XML`
  • ReactはXMLに似たJS拡張構文を定義します: `XML+JS`
  • 機能: 反応仮想DOM(要素)オブジェクトを作成するために使用します

var ele = <h1>こんにちは JSX!</h1>

注 1: 文字列でもHTML/XMLタグでもありません。

注2: 最終的にはJS對象を生成します

  • 任意のタグ名: HTMLタグまたはその他のタグ
  • 任意のタグ属性: HTMLタグ属性またはその他の
  • 基本的な文法ルール

<で始まるコードに遭遇した場合、タグ構文に従って解析します。同じ名前のHTMLタグは同じ名前のHTML要素に変換され、他のタグは特別な解析が必要です。

{で始まるコードに遭遇した場合は、JS構文で解析します。タグ内のJSコードは{}で囲む必要があります。

  • `babel.js`の役割

ブラウザはJSXコードを直接解析することができず、実行する前にbabelによって純粋なJSコードに変換する必要がある。

JSXを使用するときは常に、Babelで処理する必要があることを宣言するためにtype="text/babel"を追加する必要があります。

3. 仮想DOM要素のレンダリング

文法:

ReactDOM.render(仮想DOM、コンテナDOM)

  • パラメータ 1: 純粋な js または jsx によって作成された仮想 dom オブジェクト
  • パラメータ 2: 仮想 DOM 要素を格納するために使用される実際の DOM 要素オブジェクト (通常は div)

効果:
仮想DOM要素をページ内の実際のコンテナDOMにレンダリングして表示する

4. 仮想DOMの作成方法

純粋なJSメソッド

React.createElement('h1',{id:'myTitle'}, タイトル

JSX の方法

<h1 id='myTitle'>{タイトル}</h1>

コードサンプル

<div id="アプリ"></div>
const test1 = '私のテスト1'
// 1. 仮想DOMを作成する: 2つのメソッド var element = React.createElement('h3',{id:app},test1)
var 要素2 = <h3 id={test1}>{test1}</h3>
// 2. 仮想DOMをレンダリングする
ReactDOM.render(要素、document.getElementById('app'))
ReactDOM.render(要素2、ドキュメント.getElementById('app'))

5. React で Hello World を実現

ステップ1: react.js関連ライブラリを導入する

<script src="../js/react.development.js"></script>
<script src="../js/react-dom.development.js"></script>
<script src="../js/babel.min.js"></script>

ステップ2: ルート要素を定義する

<div id="アプリ"></div>

ステップ3: babel環境でReactコードを書く

<script type="text/babel">
// 1. 仮想 DOM 要素オブジェクトを作成します var vDOM = <h1>Hello W</h1> //文字列ではありません// 2. 仮想 DOM をページの実際の DOM コンテナーにレンダリングします ReactDOM.render(vDOM,document.getElementById('app'))
</スクリプト>

React 初心者向けの詳細な注意事項に関するこの記事はこれで終わりです。この記事では、React の基本的な概念と基本的な使用方法、および React に関連するよく使用される js ライブラリについて説明します。お役に立てば幸いです。

以下もご興味があるかもしれません:
  • Reactフック入門チュートリアル
  • React Native の基礎: Flexbox レイアウトの初期使用
  • React Native の基礎: React Native アプリケーションのデバッグへの小さな一歩
  • react-reduxプラグインの詳細な紹介
  • React 高階コンポーネントの紹介
  • React を使い始める上で重要な知識ポイントをご存知ですか?

<<:  Tomcatがセッションを管理する方法の例

>>:  MySQL 8.0.15 のインストールと設定のグラフィックチュートリアル

推薦する

JavaScript イベント委任 (プロキシ) の使用例の詳細

目次導入例: イベントの委任記述方法1: イベント委譲書き方2: 各子要素がイベントをバインドする例...

ウェブページ内でウェブテーブルやdivレイヤーが引き伸ばされる問題の解決策

<br />Web ページをデザインするときには、いつも不快なことに遭遇します。最も一般...

jsはタイトルと説明のキーワードを検出し、見つかった場合は置換するか他のページにジャンプします。

キーワード 一般タイトルには、クラック、キー、シリアル番号、キージェネレータなどの単語を含めることは...

動的なデジタル時計を実装するJavaScript

この記事では、JavaScriptで動的なデジタル時計を実装するための具体的なコードを参考までに紹介...

Windows Server 2016 で Flash を有効にする方法

最近、VMware Horizo​​n を導入してテストしましたが、そのコンソールにはデフォルトで ...

docker runコンテナの自動終了の解決策

今日、Dockerfile を使用してイメージを作成したときに問題が発生し、イメージの実行後にコンテ...

layui をベースにしたログインページの実装

この記事の例では、ログインページを実装するためのlayuiの具体的なコードを参考までに共有しています...

HTMLベースの複数画像アップロードのプレビュー機能を実装

最近、Web ページに複数の画像をアップロードするためのスクリプトを作成しました。これは非常に実用的...

Nginx の負荷分散と動的および静的分離の原理と構成

目次1. Nginxは負荷分散の原則を実装する2. Nginxの動的および静的分離の原則Nginx ...

Linuxはiptablesを使用して複数のIPからのサーバーへのアクセスを制限します

序文Linux カーネルでは、netfilter は、パケット フィルタリング、ネットワーク アドレ...

ウェブサイトのユーザビリティとコンバージョン率を向上させる 25 のツール

ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...

VueはExcelデータをエクスポートするパブリック関数メソッドをカプセル化します

vue+element UI は Excel データをエクスポートするためのパブリック関数をカプセル...

nginx で同時接続リクエストの数を制限する方法

導入同時接続数を制限するモジュールは http_limit_conn_module です。アドレス:...

Linux の fsevents モジュールによって発生する npm ls エラーの解決方法の詳細な説明

Mac で開発されたプロジェクトがあり、パッケージ npm i がインストールされており、すべて正常...