我直接给你全套刚才你卡壳、表达不顺、容易被面试官问住的 React 薄弱点,一次性整理好,你直接背、直接练。
【React 面试薄弱点 · 专属复习版】
- useEffect 三大场景(你最卡)
- 空依赖 [] = componentDidMount 组件挂载后只执行一次
- 有依赖 [a,b] = componentDidUpdate 依赖变了就执行
- 返回清理函数 return () => { ... } = componentWillUnmount 组件卸载前执行,用来清除副作用
- useEffect 清理函数是干嘛的?(你刚才没说清)
- 清除定时器
- 取消网络请求
- 取消订阅
- 防止内存泄漏
- HOC 高阶组件(你表达乱)
- HOC 是函数
- 传入一个组件 → 返回一个新组件
- 作用:复用逻辑,不修改原组件
你说的权限场景(标准答案)
- 写一个 withAuth 或 withAdmin HOC
- 里面判断:
- 是管理员 → 渲染页面
- 不是 → 跳 403 / 404 / 无权限
- 所有需要权限的页面,用 HOC 包一下就行
- HOC 和普通封装函数区别(面试必问)
- HOC 是组件级复用
- 普通函数是逻辑复用
- HOC 可以控制渲染、权限、生命周期
- React 组件更新机制(你容易懵)
- 状态变 → 组件重新渲染
- Props 变 → 重新渲染
- 父组件渲染 → 子组件默认跟着渲染
- useCallback 和 useMemo 是干嘛的?(你还没练熟)
- useCallback :缓存函数,防止子组件重复渲染
- useMemo :缓存计算结果,避免重复计算
- React.memo 是干嘛的?
- 缓存组件
- Props 不变,就不重新渲染
- 用来优化渲染性能
- 为什么要用 Hooks?
- 不用 class,代码更简洁
- 方便复用逻辑(不用 HOC、render props)
- 逻辑聚合在一起,更好维护
如果你愿意,我现在立刻开始模拟面试,就问上面这些内容,问到你能流利、不卡壳为止,直接帮你把面试手感练出来。