react组件状态

一个前提:在react hook出来之前,函数式组件是没有自己的状态的,所以我们统一通过类组件来讲解

1. 初始化状态

• 通过class的实例属性state来初始化

• state的值是一个对象结构,表示一个组件可以有多个数据状态

html 复制代码
React.Component{
  // 初始化状态
  state = {
    count: 0
  }
  render() {
    return <Button>计数器</Button>
  }
}

2. 读取状态

• 通过this.state来获取状态

classCounterextendsReact.Component{

html 复制代码
  // 初始化状态
  state = {
    count: 0
   }
  render() {
    // 读取状态
    return <Button>计数器{this.state.count}</Button>
  }
}

3. 修改状态

• 语法

this.setState({ 要修改的部分数据 })

• setState方法作用

• 修改state中的数据状态

• 更新UI

• 数据驱动视图,也就是只要修改数据状态,那么页面就会自动刷新,无需手动操作dom

• 不要直接修改state中的值,必须通过setState方法进行修改

html 复制代码
React.Component{
  // 定义数据
  state = {
    count: 0,
    abled: false,
  }
  // 定义修改数据的方法
  setCount = () => {
    this.setState({
      count: this.state.count+ 1
    })
  }
  // 使用数据 并绑定事件
  render () {
    return
   		<Button onClick={this.setCount} disabled={this.state.abled}>
    		{this.state.count}
    	</Button>
  }
}
相关推荐
juruiyuan1111 小时前
FFmpeg3.4 libavcodec协议框架增加新的decode协议
前端
Peter 谭2 小时前
React Hooks 实现原理深度解析:从基础到源码级理解
前端·javascript·react.js·前端框架·ecmascript
周胡杰2 小时前
鸿蒙接入flutter环境变量配置windows-命令行或者手动配置-到项目的创建-运行demo项目
javascript·windows·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
LuckyLay3 小时前
React百日学习计划——Deepseek版
前端·学习·react.js
gxn_mmf3 小时前
典籍知识问答重新生成和消息修改Bug修改
前端·bug
hj10433 小时前
【fastadmin开发实战】在前端页面中使用bootstraptable以及表格中实现文件上传
前端
乌夷3 小时前
axios结合AbortController取消文件上传
开发语言·前端·javascript
晓晓莺歌4 小时前
图片的require问题
前端
码农黛兮_464 小时前
CSS3 基础知识、原理及与CSS的区别
前端·css·css3
水银嘻嘻5 小时前
web 自动化之 Unittest 四大组件
运维·前端·自动化