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>
  }
}
相关推荐
中屹指纹浏览器svip8 分钟前
中屹指纹浏览器和普通 Chrome 有什么区别?
前端·chrome·中屹指纹浏览器
feixing_fx24 分钟前
CSS Grid 入门:二维布局时代的降维打击
前端·css·前端框架·css3
Lank_M29 分钟前
JPG的8×8块里只要有条边,白底就保不住255
前端
coding漫漫长路32 分钟前
主图纯白检测,阈值放宽到250会放过252的底
前端
计算机魔术师33 分钟前
藏了八个月没被当漏洞的洞,AI红队一晚上翻出来了
前端
用户831348593069834 分钟前
Vue3 v-for:常用用法与开发高频坑点
前端·javascript·vue.js
用户6210075870238 分钟前
Web 3D 开发实践:BIM+GIS 融合需要解决哪些技术问题?
前端·three.js
志尊宝38 分钟前
AI原生前端开发(017):端侧AI与Vue 3结合实战
前端·人工智能·prompt·1024·ai-native
钱栈up40 分钟前
配料秤料位查出来是负数——IoTDB存的是周期增量,我却在拿首尾相减
前端·数据库
Funlang41 分钟前
fun-ui 开源:把浏览器界面接回来
前端·javascript