選單
×
   ❮     
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 條件渲染


在 React 中,你可以條件性地渲染元件。

有幾種方法可以做到這一點。


if 語句

我們可以使用 JavaScript 的 if 運算子來決定渲染哪個元件。

示例

我們將使用這兩個元件

function MissedGoal() {
  return <h1>MISSED!</h1>;
}

function MadeGoal() {
  return <h1>Goal!</h1>;
}

示例

現在,我們將建立另一個元件,根據條件選擇要渲染的元件

function Goal(props) {
  const isGoal = props.isGoal;
  if (isGoal) {
    return <MadeGoal/>;
  }
  return <MissedGoal/>;
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Goal isGoal={false} />);

執行示例 »

嘗試將 isGoal 屬性更改為 true

示例

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Goal isGoal={true} />);

執行示例 »


w3schools CERTIFIED . 2022

獲得認證!

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

$95 註冊

邏輯 && 運算子

另一種條件渲染 React 元件的方法是使用 && 運算子。

示例

我們可以使用花括號將 JavaScript 表示式嵌入 JSX 中

function Garage(props) {
  const cars = props.cars;
  return (
    <>
      <h1>Garage</h1>
      {cars.length > 0 &&
        <h2>
          You have {cars.length} cars in your garage.
        </h2>
      }
    </>
  );
}

const cars = ['Ford', 'BMW', 'Audi'];
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Garage cars={cars} />);

執行示例 »

如果 cars.length > 0 為真,則會渲染 && 後面的表示式。

嘗試清空 cars 陣列

示例

const cars = [];
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Garage cars={cars} />);

執行示例 »


三元運算子

另一種條件渲染元素的方法是使用三元運算子。

condition ? true : false

我們將回到目標示例。

示例

如果 isGoaltrue,則返回 MadeGoal 元件,否則返回 MissedGoal 元件

function Goal(props) {
  const isGoal = props.isGoal;
  return (
    <>
      { isGoal ? <MadeGoal/> : <MissedGoal/> }
    </>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Goal isGoal={false} />);

執行示例 »

欲瞭解更多資訊,請參閱 三元運算子 部分。



×

聯絡銷售

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

報告錯誤

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

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

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