[react] useState的一些小细节

1.无限循环

因为setState修改是异步的,加上会触发函数重新渲染, 如果代码长这样

一秒再修改,然后重新触发setTImeout, 然后再触发,重复触发循环


如果这样呢

还是会,因为你执行又会重新渲染

2.异步修改数据

为什么修改多次还是跟不上呢?

函数传参解决

因为是异步修改 ,所以会出现问题,怎么办?用传函数的形式解决

Component -- React 中文文档

改成这种形式

用回调的方式返回上一个state的值,这样就可以解决了,当然可以简洁些

怎么拿最新结果

但是最后那个打印还是拿不到最新的结果咋办?

可以用临时变量解决

也可以套多一层函数形式

小细节

这里数据加了几次,但是只渲染一次,把你要更新的请求合并到一起处理

3.缓存功能

代码如下

每次点击x,y都会加1,但是

为什么?因为每次组件重新渲染let y都会重新赋值!!setState有缓存不会重新赋值

相关推荐
颜酱15 分钟前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
浪浪山_大橙子16 分钟前
OpenClaw 十分钟快速,安装与接入完全指南 - 推荐使用trae 官方 skills 安装
前端·人工智能
忆江南19 分钟前
iOS 可视化埋点与无痕埋点详解
前端
离开地球表面_9921 分钟前
金三银四程序员跳槽指南:从简历到面试再到 Offer 的全流程准备
前端·后端·面试
_柳青杨23 分钟前
跨域获取 iframe 选中文本?自己写个代理中间层,再也不求后端!
前端
比尔盖茨的大脑23 分钟前
事件循环底层原理:从 V8 引擎到浏览器实现
前端·javascript·面试
天才熊猫君23 分钟前
Vue3 命令式弹窗原理和 provide/inject 隔离机制详解
前端
bluceli24 分钟前
Vue 3 Composition API深度解析:构建可复用逻辑的终极方案
前端·vue.js
程序员ys26 分钟前
前端权限控制设计
前端·vue.js·react.js
卓卓不是桌桌26 分钟前
如何优雅地处理 iframe 跨域通信?这是我的开源方案
javascript·架构