react 条件渲染、列表渲染

1.class组件
复制代码
  class Cc extends React.Component {
    state = {
      show: true,
      arr: [{ name: '121' }, { name: "2323" }, { name: '432435' }]
    }
    handleShow() {
      this.setState({
        show: !this.state.show
      })
    }
    showFc() {
      return this.state.show ? '显示' : '隐藏'
    }
    addArr() {
      let arr = [...this.state.arr]
      arr.push({ name: '新的name' })
      this.setState({
        arr: arr
      })
    }
    render() {
      return <div>
        <Button type="primary">class组件</Button>
        <br></br>
        <Button type="primary" onClick={this.handleShow.bind(this)}>{this.showFc()}</Button>
        <div>列表渲染</div>
        {
          this.state.arr.map((item, index) => {
            return <div key={index}>姓名:{item.name}</div>
          })
        }
        <Button type="primary" onClick={this.addArr.bind(this)} size="small">添加数据</Button>
      </div>
    }
  }
复制代码

 

2.函数组件
复制代码
let [show, setShow] = useState(true)
  function fixShow() {
    setShow(!show)
  }
  let [arr, setArr] = useState([{ name: '121' }, { name: "2323" }, { name: '432435' }])
  function addArr() {
    let newArr = [...arr]
    newArr.push({ name: '新的name' })
    setArr(newArr)
  }
  return <div className={styles.container}>
    <div>条件渲染和列表渲染</div>
    <Button type="primary">函数组件</Button>
    <br></br>
    <Button type="primary" onClick={fixShow}>{show ? '显示' : '隐藏'}</Button>
    <div>列表渲染</div>
    {show ?
      arr.map((item, index) => {
        return <div key={index}>姓名:{item.name}</div>
      })
      : ''}
    <Button type="primary" onClick={addArr} size="small">添加数据</Button>
    <Cc></Cc>
  </div>
    ;
复制代码

  

posted on   sss大辉  阅读(79)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示