首頁 web前端 js教程 Day 了解 JSX 和渲染元素 - ReactJS

Day 了解 JSX 和渲染元素 - ReactJS

Aug 30, 2024 pm 07:01 PM

Day Understanding JSX and Rendering Elements - ReactJS

歡迎來到「ReactJS 30 天」挑戰的第三天!今天,我們將深入探討 React 的核心概念之一:JSX。讀完本文後,您將對 JSX 以及 React 如何使用它在網頁上渲染元素有一個深入的了解。

什麼是 JSX?
JSX 代表 JavaScript XML。它是 JavaScript 的語法擴展,可讓您在 JavaScript 檔案中編寫類似 HTML 的程式碼。 JSX 讓您更輕鬆地直接在程式碼中建立和視覺化 UI 元件,從而混合應用程式的邏輯和結構。

JSX 的工作原理
當您編寫 JSX 時,您正在編寫 HTML 和 JavaScript 的混合體。 React 接受它並將其轉換為代表您的 UI 的標準 JavaScript 物件。

這是一個基本範例:

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

這行程式碼建立了一個代表

的 React 元素。標籤上寫著「Hello, world!」。

JSX 不是 HTML
儘管 JSX 看起來很像 HTML,但重要的是要記住它並不完全相同。 JSX 是 React 用於創建元素的語法糖。

例如,在 HTML 中,類別等屬性用於應用 CSS 類別:

<h1 class="header">Hello, world!</h1>

但是在 JSX 中,你需要使用 className 而不是 class,因為 class 是 JavaScript 中的保留關鍵字:

const element = <h1 className="header">Hello, world!</h1>;

在 JSX 中嵌入表達式
JSX 的強大功能之一是您可以直接在其中嵌入 JavaScript 表達式。這允許您根據應用程式的邏輯動態生成內容。

例如:

const name = 'Meraj';
const element = <h1>Hello, {name}!</h1>;

這裡,{name} 是一個 JavaScript 表達式,它將被計算並替換為 name 變數的值,呈現為「Hello, Meraj!」在螢幕上。

在 React 中渲染元素
在React中,渲染元素是在頁面上顯示內容的過程。 React 元素是應用程式 UI 的建構塊。

要渲染元素,可以使用 ReactDOM.render() 方法。此方法需要兩個參數:

  1. 要渲染的 React 元素。
  2. 要渲染它的 DOM 元素。

以下是渲染「Hello, world!」的方法。例如:

import React from 'react';
import ReactDOM from 'react-dom/client';

const element = <h1>Hello, world!</h1>;
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(element);

此程式碼告訴 React 使用 root 的 id 渲染 HTML 元素內的元素。

React 虛擬 DOM 的強大
React 使用虛擬 DOM 來有效管理 UI 的變更。當你更新一個元素時,React 會將新版本與前一個版本進行比較,並只更新實際 DOM 中已更改的部分。這種方法使 React 快速且有效率。

現實生活中的例子:購物清單
想像一下白板上的購物清單。如果您需要更改一項,則不必刪除整個清單並重寫它。您只需更新更改的特定項目即可。 React 的虛擬 DOM 的工作原理類似,只更新需要更改的部分。

為什麼要用 JSX?

  • 可讀程式碼: JSX 讓您以易於閱讀和理解的方式編寫元件。您可以直接在程式碼中看到 UI 的結構。
  • 更少的程式碼:使用 JSX,與使用 React.createElement() 手動建立元素相比,您可以編寫更少的程式碼。
  • 與 JavaScript 整合:由於 JSX 是 JavaScript 的語法擴展,因此您可以直接在 UI 程式碼中嵌入邏輯。

使用 Vite 設定 JSX
由於我們使用 Vite 進行開發,好消息是 Vite 已預先配置為開箱即用地支援 JSX。這意味著您可以立即開始編寫 JSX,無需任何額外的設定。

如果您按照第 2 天的步驟進行操作,則您的 Vite 專案已經設定完畢。您可以開始使用 JSX 建立元件並立即查看它們的渲染效果。

結論
JSX 是一個強大的工具,它彌合了 HTML 和 JavaScript 之間的差距,使使用 React 建立動態和互動式 UI 變得更加容易。了解 JSX 的工作原理以及 React 如何使用它來渲染元素將為您的 React 開發之旅奠定堅實的基礎。

明天,我們將深入探討元件和道具——任何 React 應用程式的核心構建塊。

以上是Day 了解 JSX 和渲染元素 - ReactJS的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1605
29
PHP教程
1511
276
高級JavaScript範圍和上下文 高級JavaScript範圍和上下文 Jul 24, 2025 am 12:42 AM

JavaScript的作用域決定變量可訪問範圍,分為全局、函數和塊級作用域;上下文決定this的指向,依賴函數調用方式。 1.作用域包括全局作用域(任何地方可訪問)、函數作用域(僅函數內有效)、塊級作用域(let和const在{}內有效)。 2.執行上下文包含變量對象、作用域鍊和this的值,this在普通函數指向全局或undefined,在方法調用指向調用對象,在構造函數指向新對象,也可用call/apply/bind顯式指定。 3.閉包是指函數訪問並記住外部作用域變量,常用於封裝和緩存,但可能引發

如何使用JS獲取所選廣播按鈕的值? 如何使用JS獲取所選廣播按鈕的值? Jul 18, 2025 am 04:17 AM

獲取選中的單選按鈕值的核心方法有兩種。 1.使用querySelector直接獲取選中項,通過input[name="your-radio-name"]:checked選擇器獲取選中的元素並讀取其value屬性,適合現代瀏覽器且代碼簡潔;2.使用document.getElementsByName遍歷查找,通過循環NodeList找到第一個checked的radio並獲取其值,適合兼容舊瀏覽器或需要手動控制流程的場景;此外需注意name屬性拼寫、處理未選中情況以及動態加載內容時

掌握JavaScript並發模式:網絡工人與Java線程 掌握JavaScript並發模式:網絡工人與Java線程 Jul 25, 2025 am 04:31 AM

JavaScript的WebWorkers和JavaThreads在並發處理上有本質區別。 1.JavaScript採用單線程模型,WebWorkers是瀏覽器提供的獨立線程,適合執行不阻塞UI的耗時任務,但不能操作DOM;2.Java從語言層面支持真正的多線程,通過Thread類創建,適用於復雜並發邏輯和服務器端處理;3.WebWorkers使用postMessage()與主線程通信,安全隔離性強;Java線程可共享內存,需注意同步問題;4.WebWorkers更適合前端並行計算,如圖像處理,而

VUE 3組成API與選項API:詳細比較 VUE 3組成API與選項API:詳細比較 Jul 25, 2025 am 03:46 AM

Vue3中CompositionAPI更适合复杂逻辑和类型推导,OptionsAPI适合简单场景和初学者;1.OptionsAPI按data、methods等选项组织代码,结构清晰但复杂组件易碎片化;2.CompositionAPI用setup集中相关逻辑,利于维护和复用;3.CompositionAPI通过composable函数实现无冲突、可参数化的逻辑复用,优于mixin;4.CompositionAPI对TypeScript支持更好,类型推导更精准;5.两者性能和打包体积无显著差异;6.

用於復雜JavaScript應用的高級調試技術,利用Java調試原理 用於復雜JavaScript應用的高級調試技術,利用Java調試原理 Jul 17, 2025 am 01:42 AM

調試JavaScript複雜應用需系統化使用工具。 1.設斷點及條件斷點攔截可疑流程,如函數入口、循環、異步回調前並按條件過濾;2.啟用Blackboxing功能屏蔽第三方庫干擾;3.結合環境判斷使用debugger語句控制調試入口;4.通過CallStack追溯調用鏈路,分析執行路徑與變量狀態,從而高效定位問題根源。

在JavaScript中探索類型的強制規則 在JavaScript中探索類型的強制規則 Jul 21, 2025 am 02:31 AM

類型強制轉換是JavaScript中自動將一種類型的值轉為另一種類型的行為,常見場景包括:1.使用 運算符時,若其中一邊為字符串,另一邊也會被轉為字符串,如'5' 5結果為"55";2.布爾上下文中非布爾值會被隱式轉為布爾類型,如空字符串、0、null、undefined等被視為false;3.null參與數值運算會轉為0,而undefined會轉為NaN;4.可通過顯式轉換函數如Number()、String()、Boolean()避免隱式轉換帶來的問題。掌握這些規則有助於

如何在JS中格式化日期? 如何在JS中格式化日期? Jul 20, 2025 am 12:10 AM

在JavaScript中格式化日期可通過原生方法或第三方庫實現。 1.使用原生Date對象拼接:通過getFullYear、getMonth、getDate等方法獲取日期部分,手動拼接成YYYY-MM-DD等格式,適合輕量需求且不依賴第三方庫;2.使用toLocaleDateString方法:可按本地習慣輸出如MM/DD/YYYY格式,支持多語言但格式可能因環境不同而不一致;3.使用第三方庫如day.js或date-fns:提供簡潔語法和豐富功能,適合頻繁操作或需要擴展性時使用,例如dayjs()

用node.js構建CLI工具 用node.js構建CLI工具 Jul 24, 2025 am 03:39 AM

初始化項目並創建package.json;2.創建帶shebang的入口腳本index.js;3.在package.json中通過bin字段註冊命令;4.使用yargs等庫解析命令行參數;5.用npmlink本地測試;6.添加幫助、版本和選項增強體驗;7.可選地通過npmpublish發布;8.可選地用yargs實現自動補全;最終通過合理結構和用戶體驗設計打造實用的CLI工具,完成自動化任務或分發小工具,以完整句⼦結束。

See all articles