2020-react常见面试题

以下是我个人遇到的面试题,先列题目,答案慢慢更新~

1.react生命周期。

2.hooks和class的区别,为什么要用hooks?(hooks解决了哪些问题)

3.react-router的实现原理?有哪几种类型,分别有什么区别?

4.hashrouter是怎么实现路由跳转的?如果我直接改变URL跳转到另一个页面,描述一下过程。

5.解决地狱回调的方法。

6.介绍下promise。

7.promiseAll其中一个方法失败后,整个结果是失败还是成功?

答:失败

8.介绍一下redux。

9.redux执行的是浅比较还是深比较?

答:浅比较。

10.pureComponent执行的是浅比较还是深比较?

答:浅比较。

11.connect的原理。

12.介绍一下react最新的api和生命周期。

答:context api,createRef api,forwardRef api。

13.this.setState传对象和函数有什么区别,同步还是异步?

传入对象的情况,如果有多个setState同时处理一个变量,会进行一个合并处理,最终可能只执行了一次;而传入函数的情况,函数的入参(prevState,props)每次都能拿到最新的state值。(参考:React中对于this.setState参数为函数或对象的问题。_小贱贱的博客-CSDN博客_this.setstate参数

在原生dom事件中使用setState,以及在setTimeout中使用setState时,是同步的。

其他情况是异步的。

14.介绍一下diff算法。

 diff算法是对vdom和newVdom进行比较的过程,比较的规则:

  • 只比较同一层级,不跨级比较
  • tag不相同直接删掉重建,不再深度比较
  • tag和key都相同则认为是同一个节点,不再深度比较

15.什么是高阶组件?

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值