選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

React JSX


什麼是 JSX?

JSX 代表 JavaScript XML。

JSX 允許我們在 React 中編寫 HTML。

JSX 使在 React 中編寫和新增 HTML 更加容易。


編寫 JSX 程式碼

JSX 允許我們在 JavaScript 中編寫 HTML 元素,並將它們放置在 DOM 中,而無需使用任何 createElement()appendChild() 方法。

JSX 將 HTML 標籤轉換為 React 元素。

您不一定需要使用 JSX,但 JSX 使編寫 React 應用程式更加容易。

這裡有兩個例子。第一個使用 JSX,第二個不使用。

示例 1

JSX

const myElement = <h1>I Love JSX!</h1>;

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(myElement);

執行示例 »

示例 2

未使用 JSX

const myElement = React.createElement('h1', {}, 'I do not use JSX!');

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(myElement);

執行示例 »

正如您在第一個示例中看到的,JSX 允許我們在 JavaScript 程式碼中直接編寫 HTML。

JSX 是基於 ES6 的 JavaScript 語言的擴充套件,它在執行時會被翻譯成常規的 JavaScript。


w3schools CERTIFIED . 2022

獲得認證!

完成 React 模組,完成練習,參加考試,並獲得 w3schools 認證!

$95 註冊

JSX 中的表示式

使用 JSX,您可以在花括號 { } 內編寫表示式。

表示式可以是 React 變數、屬性或任何其他有效的 JavaScript 表示式。JSX 會執行該表示式並返回結果。

示例

執行表示式 5 + 5

const myElement = <h1>React is {5 + 5} times better with JSX</h1>;

執行示例 »


插入大塊 HTML

要編寫多行 HTML,請將 HTML 放在括號內。

示例

建立一個包含三個列表項的列表

const myElement = (
  <ul>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Cherries</li>
  </ul>
);

執行示例 »


一個頂級元素

HTML 程式碼必須包含在*一個*頂級元素中。

因此,如果您想寫*兩個*段落,您必須將它們放在一個父元素內,例如 div 元素。

示例

將兩個段落包裝在一個 DIV 元素中

const myElement = (
  <div>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </div>
);

執行示例 »

如果 HTML 不正確,或者 HTML 缺少父元素,JSX 將會報錯。

或者,您可以使用“片段”來包裝多行。這將避免不必要地向 DOM 新增額外的節點。

片段看起來像一個空的 HTML 標籤:<></>

示例

將兩個段落包裝在一個片段中

const myElement = (
  <>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </>
);

執行示例 »


元素必須閉合

JSX 遵循 XML 規則,因此 HTML 元素必須正確閉合。

示例

使用 /> 閉合空元素

const myElement = <input type="text" />;

執行示例 »

如果 HTML 未正確閉合,JSX 將會報錯。


屬性 class = className

class 屬性在 HTML 中是一個常用屬性,但由於 JSX 被渲染為 JavaScript,並且 class 關鍵字在 JavaScript 中是保留字,因此您不能在 JSX 中使用它。

改用屬性 className

JSX 透過使用 className 來解決這個問題。當 JSX 被渲染時,它會將 className 屬性轉換為 class 屬性。

示例

在 JSX 中使用 className 屬性而不是 class

const myElement = <h1 className="myclass">Hello World</h1>;

執行示例 »


條件 - if 語句

React 支援 if 語句,但*不在* JSX 內部。

要在 JSX 中使用條件語句,您應該將 if 語句放在 JSX 之外,或者您可以使用三元表示式代替。

選項 1

if 語句寫在 JSX 程式碼之外

示例

如果 x 小於 10,則顯示“Hello”,否則顯示“Goodbye”

const x = 5;
let text = "Goodbye";
if (x < 10) {
  text = "Hello";
}

const myElement = <h1>{text}</h1>;

執行示例 »

選項 2

改用三元表示式

示例

如果 x 小於 10,則顯示“Hello”,否則顯示“Goodbye”

const x = 5;

const myElement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;

執行示例 »

注意:要在 JSX 中嵌入 JavaScript 表示式,JavaScript 必須用花括號 {} 包圍。



×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援