react:hooks相关面试题

1、为什么会有React Hooks,它解决了哪些问题?

  • 完善函数组件的能力,函数组件更适合 react 组件
  • 组件逻辑复用,hooks表现更好
  • class复杂组件变的难以理解,逻辑混乱,不易拆解和测试

例如:同样的逻辑,散落在 DidMount 和 DidUpdate 中,DidMount 和 WillUnMount 中,使用 hooks,同样的逻辑可以分割到一个一个的 useEffect 中

2、React Hooks 如何模拟组件的生命周期?

  • 模拟 componentDidMount 和 componentDidUpdate,useEffect 依赖不写
  • 模拟 componentDidMount,useEffect 依赖 []
  • 模拟 componentDidUpdate,useEffect 无依赖,或者依赖 [a, b]
  • 模拟 componentWillUnMount,useEffect 返回一个函数

3、如何自定义 Hook?

4、React Hooks 性能优化?

  • useMomo 缓存数据,useCallback 缓存函数
  • 相当于 class 组件的 SCU 和 PureComponent

5、使用 React Hooks 遇到过哪些坑?

  • useState 初始化只初始化一次
  • useEffect 内部不能修改 state
  • useEffect 依赖引用类型会出现死循环

6、Hooks 相比 HOC 和 Render Props 有哪些优点?

  • 没有额外需要理解的规则
  • 变量作用域明确
  • 不会产生组件嵌套

参考

可以对着这个文章来看 https://blog.csdn.net/weixin_43972437/article/details/105326274

React Hooks是React 16.8版本引入的特性,解决了一些函数组件在处理状态和副作用时的限制和不便之处。函数组件是一种更简洁、更可复用的组件编写方式,但在过去,它们无法像类组件那样保存和更新状态,也无法使用生命周期方法和其他副作用。React Hooks解决了这些问题,使函数组件能够拥有类组件的能力。 React Hooks的优势包括: 1. 完善函数组件的能力:通过useState Hook,函数组件可以保存和更新状态,使其功能更加完善。 2. 组件逻辑复用:通过自定义Hook,可以将组件的逻辑复用,使组件之间可以共享状态和逻辑。 3. 简化复杂组件:Hooks使得复杂组件变得更易理解和拆解,减少了使用类组件时可能出现的混乱和逻辑重叠的问题。 4. 更好的测试性:使用Hooks可以更方便地对组件进行单元测试,因为函数组件本身就是纯函数,更易于隔离和测试。 关于React Hooks的一些面试题包括: 1. React为什么引入Hooks?Hooks解决了哪些问题? 2. 使用Hooks可能会遇到的问题和陷阱有哪些? 3. 常用的Hooks有哪些?例如useState、useEffect、useContext等。 4. Hooks如何模拟类组件中的生命周期方法?与类组件的生命周期有何区别? 5. Hooks相比于高阶组件(HOC)和Render Props有哪些优点? 6. useState和setState的参数和用法有何区别? 7. useReducer和redux的区别是什么? 8. Hooks如何进行性能优化? 9. 如何在高阶组件中访问组件实例? 以上是一些常见的React Hooks面试题,希望能对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [reacthooks相关面试题](https://blog.csdn.net/weixin_43972437/article/details/117399682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [React Hooks面试题](https://blog.csdn.net/MichelleZhai/article/details/118392437)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lvan的前端笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值