Skip to content

条件渲染

React 没有特殊的条件语法,使用普通的 JavaScript 条件语句。

方式一:if 语句

javascript
let content;
if (isLoggedIn) {
  content = <AdminPanel />;
} else {
  content = <LoginForm />;
}

return <div>{content}</div>;

方式二:三元运算符(推荐)

javascript
<div>{isLoggedIn ? <AdminPanel /> : <LoginForm />}</div>

方式三:逻辑与 &&(无 else 分支时)

javascript
<div>{isLoggedIn && <AdminPanel />}</div>

列表渲染

使用 JavaScript 的 map() 函数渲染列表:

javascript
const products = [
  { title: "卷心菜", isFruit: false, id: 1 },
  { title: "大蒜", isFruit: false, id: 2 },
  { title: "苹果", isFruit: true, id: 3 },
];

export default function ShoppingList() {
  const listItems = products.map((product) => (
    <li
      key={product.id}
      style={{
        color: product.isFruit ? "magenta" : "darkgreen",
      }}
    >
      {product.title}
    </li>
  ));

  return <ul>{listItems}</ul>;
}

重要:每个列表项都需要唯一的 key 属性,帮助 React 识别哪些项目发生了变化。