React 基础学习笔记【二】

本文详细介绍了React中状态(state)的使用方法,包括如何在组件中定义和更新状态,以及通过实例演示了按钮点击事件触发状态更新的过程。此外,还深入探讨了React组件的生命周期,包括组件初始化、更新和卸载三个阶段,并通过电子钟表的小案例展示了如何利用生命周期钩子函数实现组件的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

state状态

state中定义的数据可以动态改变。

小案例:【点击button调用state数据改变其状态】

1.在组件中调用this.state,定义likes为0,

 

constructor 是用于创建和初始化类中创建的一个对象的一种特殊方法。
调用super的原因:在ES6中,在子类的constructor中必须先调用super才能引用this
super(props)的目的:在constructor中可以使用this.props复制代码
constructor(props) {
    super(props)
    this.state = {
        likes: 0
    }
}复制代码

2.在render中创建button,

用onClick={()=>this.increaseLikes()}  } 为button绑定点击事件increaseLikes(),

注意:【1.绑定事件必须用驼峰式  2.()=>箭头函数是为了使用state中的this】,

在react中state里定义的数据是不能被直接this.拿去函数中用的,必须将this转出,

将this.state中的likes数据绑定在button上,也就是初始的0,

render(){
    return(
       <div className="likes-button-compoent">
           <button
               type="button"
               className="btn btn-outline-primary btn-lg"
               onClick={()=>{this.increaseLikes()}}
             >
               ?{this.state.likes}
           </button>
       </div>
    )
}复制代码

将this转出还有一种方法:this.increaseLikes = this.increaseLikes.bind(this)

constructor(props) {
    super(props)
    this.state = {
        likes: 0
    }
    //this.increaseLikes = this.increaseLikes.bind(this)
}复制代码

3.定义click事件的逻辑

this.setState()是更新state的唯一途径

increaseLikes(){
    this.setState({
        likes:++this.state.likes
    })
}复制代码

最终效果

react生命周期

1.组件初始化

2.组件更新

3.组件卸载

生命周期小案例:【电子钟表】

1.构造一个state,创建一条数据date:new Date()定义当前时间

constructor(props){
    super(props)
    this.state = {
        date: new Date()
    }
}复制代码

2.在render中创建视图,展示date数据,把 Date 对象的时间部分转换为字符串

render(){
    return(
        <div className="digital-clock-compoent jumbotron">
            <h1>{this.state.date.toLocaleTimeString()}</h1>
        </div>
    )
}复制代码

3.调用钩子函数componentDidMount() ,在第一次渲染后调用

在钩子函数内定义this.timer定时器,调用this.setState更新state中的内容,让date数据每秒刷新一次

componentDidMount(){
    this.timer = setInterval(()=>{
        this.setState({
            date: new Date()
        })
    },1000)
}复制代码

4.最后调用componentWillUnmount钩子函数,在组件从 DOM 中移除之前清除定时器。

componentWillUnmount(){
    clearInterval(this.timer)
}复制代码

最终效果

 

内容概要:本文档提供了关于“微型车间生产线的设计与生产数据采集试验研究”的毕业设计复现代码,涵盖从论文结构生成、机械结构设计、PLC控制系统设计、生产数据采集与分析系统、有限元分析、进度管理、文献管理和论文排版系统的完整实现。通过Python代码和API调用,详细展示了各个模块的功能实现和相互协作。例如,利用SolidWorks API设计机械结构,通过PLC控制系统模拟生产流程,使用数据分析工具进行生产数据的采集和异常检测,以及利用进度管理系统规划项目时间表。 适合人群:具有机械工程、自动化控制或计算机编程基础的学生或研究人员,尤其是从事智能制造领域相关工作的人员。 使用场景及目标:①帮助学生或研究人员快速搭建和理解微型车间生产线的设计与实现;②提供完整的代码框架,便于修改和扩展以适应不同的应用场景;③作为教学或科研项目的参考资料,用于学习和研究智能制造技术。 阅读建议:此资源不仅包含详细的代码实现,还涉及多个学科领域的知识,如机械设计、电气控制、数据分析等。因此,在学习过程中,建议读者结合实际操作,逐步理解每个模块的功能和原理,并尝试调整参数以观察不同设置下的系统表现。同时,可以参考提供的文献资料,深入研究相关理论和技术背景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值