React组件三大属性之state

React组件三大属性之state

组件被称为"状态机", 页面的显示是根据组件的state属性的数据来显示

理解
1) state是组件对象最重要的属性, 值是对象(可以包含多个数据)
2) 组件被称为"状态机", 通过更新组件的state来更新对应的页面显示(重新渲染组件)

编码操作
1) 初始化状态:
constructor (props) {
super(props)
this.state = {
stateProp1 : value1,
stateProp2 : value2
}
}
2) 读取某个状态值
this.state.statePropertyName
3) 更新状态---->组件界面更新
this.setState({
stateProp1 : value1,
stateProp2 : value2
})

例子:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/react.development.js"></script>
    <script src="../js/react-dom.development.js"></script>
    <script src="../js/babel.min.js"></script>
</head>
<body>
<div id="test"></div>
<script type="text/babel">
    /*
    需求: 自定义组件, 功能说明如下
          1. 显示h2标题, 初始文本为: 你喜欢我
          2. 点击标题更新为: 我喜欢你
    */
    //1、定义组件
    class Like extends React.Component {
        //初始化状态
        constructor (props) {
            super(props)
            this.state = {
               isLikeMe:false
            }
            //将新增的方法中的this强制绑定为组件对象,
            //bind 返回新的函数
            this.handleClick = this.handleClick.bind(this)
        }
        //新添加的方法this默认不是组件对象,而是undefined
       handleClick(){
           // 更新状态
           const  isLikeMe = !this.state.isLikeMe
           this.setState({isLikeMe})
        }
        render() {
            //根据状态获取结果
            const text = this.state.isLikeMe ? '你喜欢我' : '我喜欢你'
            return <h2 onClick={this.handleClick}>{text}</h2>
        }
    }
    //2、渲染组件标签
    ReactDOM.render(<Like/>,document.getElementById('test'))

</script>
</body>
</html>
复制代码

 

posted @   技术小白丁  阅读(408)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-03-18 YARN学习总结之架构
2019-03-18 HDFS读写流程
2019-03-18 HDFS学习总结之API交互
点击右上角即可分享
微信分享提示