zhangdizhangdi

React 面试题

基础

什么是虚拟 DOM?

什么是 JSX?

react 和 react-dom 是什么关系?

什么是 Fiber?

渲染

render 阶段的执行过程?

commit 阶段的执行过程?

render 方法的原理?在什么时候会被触发?

scheduler 的调度机制原理

React中为什么要给组件设置 key?为什么不能用数组下标来作为 key?

diff 算法?

为什么不直接使用 requestIdleCallback?

怎么实现父组件调用子组件中的方法?

Hooks

常用的 React Hooks 有哪些?

setState 是同步还是异步?

为什么不能在循环、条件或嵌套函数中调用 Hooks?

使用 useState (const [test, setTest] = useState([]))时,为什么连续调用 setTest({…test, newValue}) 会出现值的丢失?

为什么 useState 返回的是数组而不是对象?

如果在 useEffect 的第一个参数中 return 了一个函数,那么第二个参数分别传空数组和传依赖数组,该函数分别是在什么时候执行?

useEffect 与 useLayoutEffect 有什么区别?

如何让 useEffect 支持 async/await?

在什么场景下使用 useMemo 和 useCallback ?

React 中的 useRef 是如何实现的?

使用 React hooks 怎么实现类里面的所有生命周期?

说说你对 React Hook 的闭包陷阱的理解,有哪些解决方案?

React 中,如何避免使用 context 时, 引起整个挂载节点树的重新渲染

实现 useUpdate 方法,调用时强制组件重新渲染

实现一个 useTimeout Hook

如何实现一个可以监听任何事件的React Hooks,useEventListener?

组件

ref 有什么用?

受控组件和非受控组件?

组件通信?

高阶组件?

memo

懒加载

事件

React 的事件代理机制?和原生事件绑定有什么区别?

说说 React 事件和原生事件的执行顺序

子组件是一个 Portal,发生点击事件能冒泡到父组件吗?

其他

在 React 中可以做哪些性能优化?

在 React 中如何实现代码分割?有哪些常见方式?

如果捕获处理错误的?

服务端渲染怎么做?原理是什么?

Next.js 中的 AppRouter 和 PageRouter 有什么区别?

React Router

Redux

React19 新特性