react 响应式数据
1.class组件
调用setState修改
1.setState是异步的,多次调用会合并为一次
2.修改同样数值的数据,仍会触发更新(解决方案:使用PureComponent)
class Cc extends React.Component { state = { a: 1, c: [1, 2, 3] } fix() { // 调用setState修改 // 1.setState是异步的,多次调用会合并为一次 // 2.修改同样数值的数据,仍会触发更新(解决方案:使用PureComponent) this.setState({ a: this.state.a + 1 }, () => { // 得到异步后的值 console.log(this.state) }) console.log(this.state) } fixArr() { // 在PureComponent下,数组和对象判断是否改变,由其内存地址判断 // 一般先拷贝一份,再进行操作 let _arr = [...this.state.c] _arr.push(4) this.setState({ c: _arr }) } render() { console.log(1) return <div> <Button type="primary">class组件</Button> <div>{this.state.a}</div> <div>{this.state.c}</div> <Button type="primary" onClick={this.fix.bind(this)}>修改数据</Button> <br></br> <Button type="primary" onClick={this.fixArr.bind(this)}>修改数组</Button> </div> } }
2.函数组件
借用useState hook来解决响应式问题
let [mes, setMsg] = useState(111) // mes值本身 // setMsg修改方法 function fixMsg() { setMsg(mes+1) } return <div className={styles.container}> <div>响应式数据</div> <Button type="primary">函数组件</Button> <div>{mes}</div> <Button type="primary" onClick={fixMsg}>修改数据</Button> <Cc></Cc> </div>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
2020-03-26 npm的一些细节