目次
01. React がインターフェイスをレンダリングする方法
」も確認します。
03. 概要
ホームページ ウェブフロントエンド jsチュートリアル React の使用: React が UI をレンダリングする方法

React の使用: React が UI をレンダリングする方法

Jul 20, 2018 am 10:37 AM
javascript react.js

この記事では、React の使用方法を紹介します。React が UI をレンダリングする方法には、必要な友人が参照できるようにするための値があります。

01. React がインターフェイスをレンダリングする方法

React のような大規模なフロントエンド フレームワークが登場する前は、UI 要素をレンダリングする方法は String テンプレート を使用することでした。 React では、JavaScript オブジェクト を使用して UI 要素をレンダリングします。

前の章で述べたように、React は、頻繁な DOM 操作によって消費されるフロントエンドのパフォーマンスを節約するために、仮想 DOM の概念を提案しました。ここで作成した JavaScript オブジェクトは、「ページがどのように見えるか」を記述するために使用されます。 " 仮想 DOM ノードはどのようなものですか? 「仮想 DOM」は最終的にどのようにして「本物の DOM」に変換され、ブラウザに表示されるのでしょうか?ここでの複雑な作業 (DOM ツリーの操作、ノードの追加) は React によって行われます。

まず、JavaScript オブジェクトを通じて仮想 DOM ノード (つまり React 要素) を作成する方法を見てみましょう:

// 为了创建一个 React 元素,我们需要使用 React.createElement API
const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);
ログイン後にコピー
API は最終的に次の形式で JavaScript オブジェクトを返します:

const element = {
  type: 'h1',
  props: {
    className: 'greeting',
    children: 'Hello, world'
  }
};
ログイン後にコピー
React はこの JavaScript を提供します生成された仮想 DOM ツリー内の場所を見つけて、最終的にブラウザ内の実際の DOM ツリーとマージしてビューをレンダリングします。

ただし、実際の開発では React.createElement API を使用することはほとんどありませんが、次のような React 要素を作成します:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);
ログイン後にコピー
React.createElement API,而是像下方这样创建 React 元素:
<p id="root"></p>

const element = <h1>Hello, world</h1>;

// 使用 ReactDOM.render API
ReactDOM.render(
  element,
  document.getElementById('root')
);
ログイン後にコピー

这种创建方式是通过一种叫做 JSX 的 JavaScript 语法扩展实现的,而对于 JSX 的概念在这里我就不再进一步阐述了,你大可以将它理解为一种简洁,高效创建 React 元素的语法糖,用来更加优雅的构建整个应用的虚拟 DOM。

值得一提的是,JSX 并不是 React 框架的一部分(这源于 React 代码组织上尽量分而治之的哲学),因此 React 并不像负责合并虚拟DOM与真实DOM那样,负责将由 JSX 语法写成的代码转化为使用了 React.createElement API 的 JavaScript 对象。

那谁来做这件事呢?答案是 Babel。而通常,我们使用 webpack 来打包我们的 JavaScript代码并输送至 Babel 进行转译。现在你明白了,为什么 ReactwebpackBabel总是像连体婴儿一样出现在一起。

到目前为止,我们已经知道如何创建 React 元素了,但实际上我们只是“创建“而已,离元素被真正展现在浏览器上,还查了关键的一步”渲染“。

在这里我们加快脚步,想要将之前创建好的 React 元素渲染出来,我们需要使用如下代码:

import React form 'react'
import ReactDOM form 'react-dom'

function Button(props) {
    return <button>{props.buttonName}</button>
}
ログイン後にコピー

没错,id 为 root この作成方法は JSX の JavaScript 構文拡張機能が実装されています。ここでは、<code>JSX の概念については詳しく説明しません。これは、React 要素を作成するためのシンプルで効率的な方法として理解できます。アプリケーション全体の仮想 DOM をよりエレガントに構築します。 JSX は React フレームワークの一部ではないことに言及する価値があります (これは、React コード構成における可能な限り分割統治の哲学に由来しています)。そのため、React は、仮想 DOM と実際の DOM は、React.createElement API を使用して、JSX 構文で記述されたコードを JavaScript オブジェクトに変換します。

それでは誰がやるのでしょう?答えは バベル です。通常、webpack を使用して JavaScript コードをパッケージ化し、それを翻訳のために Babel に送信します。 ReactwebpackBabel がシャム双生児のように常に一緒に表示される理由がわかりました。 ここまでで、React 要素の作成方法はすでにわかりましたが、実際には要素が実際にブラウザーに表示される前に、重要なステップである「

レンダリング

」も確認します。

ここで、以前に作成した React 要素をレンダリングしたい場合は、次のコードを使用する必要があります: rrreeeはい、root の ID を持つ DOM 要素が全体になります。 virtual DOM ツリーのルート ノード。これまでのところ、React 要素を仮想 DOM ノードに変換し、ブラウザ上で要素をレンダリングするプロセス全体を習得しました。ただし、React を使用して視覚要素をレンダリングできるだけでは、React の価値を実現することはできません。 React は大規模なフロントエンド フレームワークとして存在することを忘れないでください (ただし、他の大規模なフロントエンド フレームワークと比較すると、そのコンポーネントは完全ではありません)。 React の真の価値は次のとおりです。 React 要素を使用してさまざまな実装を行う。複雑なビジネス ロジックを簡潔かつ効率的に処理します どうやってやるの?答えは、

React コンポーネント

を使用することです。 02. React コンポーネント React コンポーネントは、多数の視覚要素をパッケージ化する機能

を提供するだけでなく、対応する一連のインタラクティブな動作

をパッケージ化する機能も提供します。次のように言えます:

React コンポーネントは React アプリケーションの基礎です

では、

React コンポーネント

とは何ですか? React コンポーネントは、プロパティと呼ばれる一連のマテリアルを受け取り、最終的に React 要素/コンポーネントを生成 (返す) するファクトリーのようなものであると想像できます。

🎜別の言い方をすると、React コンポーネントは本質的に、一連のパラメーターを受け取り、React 要素/コンポーネントを返す JavaScript 関数です。どのように書かれているか見てみましょう: 🎜rrreee🎜ほら、React コンポーネントは、パラメータを受け取って UI 要素を返す、前に述べたコンポーネント化のアイデアに完全に準拠しています。 🎜🎜コンポーネント化はモジュール性と再利用性を意味するため、コンポーネントの観点から React アプリケーションの構築について考えることは素晴らしいアイデアです。コンポーネント クラスは、コンポーネントを生産する工場のインスタンスのようなもので、「単一応答原則」と「DOT」原則に完全に準拠しています。 🎜🎜 React の公式ドキュメントでは、React API の大部分がコンポーネントに関するものです。したがって、コンポーネントは React において非常に重要な概念です。本質的に、コンポーネントは 🎜React🎜 によって与えられる主要なカプセル化単位です。コンポーネントを使用すると、複雑な対話ロジックとビルディング ブロックのようなビジュアル インターフェイスを備えた大規模なアプリケーションを迅速に構築でき、アプリケーション内の各ビジュアル ユニットには非常に明確な責任があります。 🎜

大規模なアプリケーションを構築する際に React の価値を理解していただければ幸いです。React を使用すると、アプリケーションの残りの部分に誤って影響を与えることなく、アプリケーションの小さな部分に集中できます (つまり、各コンポーネントが「高結合、低結合」の原則に準拠します)。 )。 React を使用すると、明確でエレガントなコードを簡単に作成できます。

03. 概要

最後に、React でコンポーネントを使用してインターフェイスをレンダリングする 2 つの利点をもう一度まとめておきます:

  1. 再利用が簡単: いつでもどこでもコンポーネントを呼び出すことができます。

    便利なカスタマイズ
  2. : コンポーネントにさまざまな属性を与えることで、さまざまな UI 要素を取得できます。ネイティブ Echarts コンポーネントの紹介

以上がReact の使用: React が UI をレンダリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

See all articles