首页
学习
活动
专区
圈层
工具
发布

#react

数据提供渲染为 HTML 视图的开源 JavaScript 库

React 事件处理函数每次渲染都重新创建?useCallback 的真实使用场景

用户1839651

写 React 组件时经常看到这样的代码:父组件把一个内联函数传给子组件,子组件用 React.memo 包裹,结果发现子组件还是频繁重渲染。打开 React ...

000

React 中 useEffect 依赖数组的闭包陷阱:为什么你的定时器总在读取旧值?

超哥前端记录

在 React 函数组件里用 useEffect 处理定时器、事件订阅或者异步请求时,经常会遇到一个隐蔽的问题:回调函数里拿到的 state 或 props 永...

800

React useEffect 依赖数组的坑:为什么你的清理函数总是慢半拍?

用户1839651

在 React 函数组件里用 useEffect 处理副作用时,依赖数组的控制往往比想象中更容易出错。尤其是当副作用内部引用了外部变量或函数,却忘记将它们加入依...

2800

React 闭包陷阱:为什么你的定时器里拿不到最新的 state?

超哥前端记录

在 React 函数组件里,如果你在 useEffect 中启动了一个 setInterval,并且在回调里读取某个 state,十有八九会发现回调里拿到的永远...

4300

React 状态更新后组件不重新渲染?从 Object.is 和闭包陷阱排查一次真实问题

用户12771345

上周帮同事排查一个 React 页面的 bug:点击按钮修改了 state 里的对象属性,接口数据回来了,控制台也打印了新的值,但页面上的数字和列表纹丝不动。代...

5800

React 受控组件里 onChange 和 onInput 到底该用哪个?

用户12771345

在 React 里处理表单输入时,onChange 的表现和原生 DOM 的 change 事件完全不是一回事。原生的 change 通常要等到输入框失去焦点才...

6900

React 中 useCallback 的闭包陷阱与依赖数组的正确使用

用户1839651

在 React 函数组件中使用 useCallback 时,一个常见的困扰是:明明已经用 useCallback 包裹了回调函数,但内部访问的 state 或 ...

9010

React 中 useCallback 和 useMemo 到底该不该加?从一次列表卡顿排查说起

超哥前端记录

上周排查了一个后台管理页面的卡顿问题,页面里有一个 200 行左右的数据表格,每行都渲染了一个带删除按钮的操作列。用户点击任意一行删除时,整个表格重新渲染,肉眼...

12310

别再在 useEffect 里直接写 async 了:清理函数、竞态和依赖项的真实处理

超哥前端记录

React 的 useEffect 里用 async 函数获取数据这个写法,几乎每个项目里都能见到。大多数情况下页面看起来正常,但遇到路由快速切换、搜索框连续输...

11710

React 中 useEffect 依赖数组的闭包陷阱与正确使用方式

超哥前端记录

在 React 函数组件中,useEffect 是处理副作用的核心 Hook。很多人习惯把依赖数组当作“触发条件”来用,比如传入一个空数组模拟 componen...

10110

React 中 useState 的闭包陷阱:从事件监听器到定时器的正确写法

用户1839651

在 React 函数组件里使用 useState 时,很多人会碰到一个看似诡异的问题:明明调用了 setCount,但事件回调或定时器里拿到的 count 始终...

11110

React useEffect 依赖数组比较陷阱:为什么对象和函数总是触发重跑

用户1839651

在 React 函数组件中,useEffect 的依赖数组决定了副作用何时重新执行。很多开发者习惯把组件内定义的对象、数组或函数直接放进依赖项,结果发现 use...

8210

React 中 useEffect 依赖数组的三种谎言与真实运行逻辑

用户1839651

很多人第一次写 useEffect 时都会默认“依赖数组就是告诉 React 什么时候重新执行副作用”。这个理解在简单场景下能用,但一旦涉及对象、函数、闭包和并...

11710

React 18 并发渲染下,为什么 useEffect 会执行两次?

用户1839651

在 React 18 的 StrictMode 下,开发环境里组件挂载时 useEffect 会执行两次。这不是 bug,而是 React 为了帮助开发者提前发...

9110

React 状态更新后组件不渲染?从一次诡异的 useReducer 失效说起

用户12771345

上周排查了一个线上问题:一个用 useReducer 管理表单状态的组件,在某个操作后数据明明已经变了,但界面纹丝不动。用 React DevTools 看,s...

11910

如何修复 React 并发模式下 useEffect 重复执行问题

用户1839651

在 React 18 的并发模式(Concurrent Mode)下,组件在开发环境使用 StrictMode 时,useEffect 会执行两次(mount ...

12710

React 中 useState 更新后立刻读取不到新值?聊聊闭包与批处理

超哥前端记录

在 React 函数组件里用 useState 管理状态时,经常会遇到一个让人困惑的现象:调用 setState 之后,当前这次渲染中读到的 state 还是旧...

13910

React useEffect 中清理函数的真实执行时机:一个被忽略的闭包陷阱

用户12771345

最近在排查一个线上问题时,发现一个组件的定时器在卸载后仍然在跑,导致内存泄漏和额外的请求。代码看起来很正常:useEffect 里启动了 setInterval...

13910
领券