React:使用 children 属性构建 wrapper 组件

在 React 中,构建wrapper组件的例子:

ExpenseItem.js:

import "./ExpenseItem.css";
import Card from "./Card";
import ExpenseDate from "./ExpenseDate";
function ExpenseItem(props) {
  return (
    <Card className="expense-item">
      <ExpenseDate date={props.date} />
      <div className="expense-item__description">
        <h2>{props.title}</h2>
        <div className="expense-item__price">${props.amount}</div>
      </div>
    </Card>
  );
}

export default ExpenseItem;
import "./Card.css";
function Card(props) {
  // 重要!
  // 使用 props.className 接收 style 属性
  // classes 的值: card  expense-item
  const classes = "card " + props.className;
  
  return <div className={classes}>{props.children}</div>;
}

export default Card;

children 是一个 React 保留字,是每一个组件都会接收到的属性,不管你用不用此属性。并且这个特殊的 children 属性的值将始终是自定义组件的开始和结束标记之间的内容。以上面的代码为例, children 的属性的值是 Card 开始标签和结束标签之间的内容:

      <ExpenseDate date={props.date} />
      <div className="expense-item__description">
        <h2>{props.title}</h2>
        <div className="expense-item__price">${props.amount}</div>
      </div>

Vue 使用 slot 构建可重用的 wrapper 组件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值