【React】Hooks面试题集锦

xinbaocode 发布于 2024-01-24 298 次阅读



本文集合一些React的Hooks面试题,方便读者以后面试查漏补缺。作者给出自认为可以让面试官满意的简易答案,如果想要了解更深刻,可以点击链接查看对应的详细博文。在此对链接中的博文作者非常感谢🙏。

  1. react hooks与class组件的区别在于什么

参考链接: https://juejin.cn/post/6844904179136200712#heading-4

区别react hooksclass组件
语法使用函数和状态钩子来管理组件状态使用 this 关键字和生命周期方法来管理组件状态
状态管理通过状态钩子useState等管理状态通过 this.state属性管理状态
可重用性可以轻松地将Hooks用于不同的组件不能轻松地将组件的方法和状态重用于不同的组件(HOC)
  1. 为什么 hooks 不能写在循环或者条件判断语句里

参考链接: https://juejin.cn/post/7116730718356504613

确保 Hooks 在每一次渲染中都按照同样的顺序被调用。我们可以把文件里所有的Hooks按照出现顺序当成一个链表,每次更新的时候这个链表都得保持一致,然而当条件存在时,当条件从真->假时,这个链表会变化。

  1. react的hooks有哪些常用的,作用分别是什么

参考链接:https://juejin.cn/post/7118937685653192735

常用Hooks具体功能
useState数据驱动更新
useReducer订阅状态,创建reducer,更新视图
useEffect异步状态下,视图更新后,执行副作用
useLayoutEffect同步状态下,视图更新前,执行副作用
useContext订阅并获取react context上下文,用于跨层级传递状态
useRef获取元素或组建实例
useImperativeHandle允许父组件直接访问子组件的实例,调取子组件方法
useMemo缓存值,常用于性能优化
useCallback缓存函数,常用于性能优化
  1. useState 和 useRef 的区别

参考链接:https://juejin.cn/post/7029852195398877198

区别useStateuseRef
渲染改变会引起渲染改变不会引起渲染
返回值返回一个数组。分别是值和函数只返回值
何时使用存储需要展示组件的数据获取用户输入,操作Dom
  1. useCallback 和 useMemo 的区别

参考链接: https://www.jianshu.com/p/b8d27018ed22

区别useCallbackuseMemo
返回值一个缓存的回调函数一个缓存的值
参数需要缓存的函数需要缓存的值
场景通常用于回调函数通常用于在组件重新渲染时保持不变的值。
  1. useEffect 和useLayoutEffect的区别

参考链接:https://zhuanlan.zhihu.com/p/348701319

区别useEffectuseLayoutEffect
执行异步执行同步执行
执行时机浏览器完成渲染之后浏览器把内容真正渲染到界面之前等价于ComponentDidMount
  1. useEffect是如何清除副作用的

参考链接:https://juejin.cn/post/7083718507069702152

useEffect返回一个函数,函数里写清除副作用的方法,类似于类组件里的componentWillUnmount

  1. useState和useReducer的区别

参考链接: https://juejin.cn/post/6844903869437181960

区别useStateuseReducer
使用场景单组件,细粒度的状态管理组件嵌套,低成本的数据流
关系是useReducer的子集可实现useState

待续….

此作者没有提供个人介绍
最后更新于 2024-12-07