検索
ホームページウェブフロントエンドjsチュートリアルReact の使用: React が UI をレンダリングする方法

この記事では、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>
    Hello, world!
  </h1>
);
React.createElement API,而是像下方这样创建 React 元素:
<p></p>

const element = <h1 id="Hello-world">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 までご連絡ください。
Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール