react面试题面试必备

Posted 老张在线敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react面试题面试必备相关的知识,希望对你有一定的参考价值。

1. setState 何时同步何时异步?

(1) setState
只在合成事件(react为了解决跨平台,兼容性问题,自己封装了一套事件机制,代理了原生的事件,像在jsx中常见的onClick、onChange这些都是合成事件)和钩子函数(生命周期)中是“异步”的,在原生事件和
setTimeout 中都是同步的

(2)setState的“异步”并不是说内部由异步代码实现,其实本身执行的过程和代码都是同步的,只是合成事件和钩子函数的调用顺序在更新之前,导致在合成事件和钩子函数中没法立马拿到更新后的值,形式了所谓的“异步”,当然可以通过第二个参数
setState(partialState, callback) 中的callback拿到更新后的结果

(3)setState 的批量更新优化也是建立在“异步”(合成事件、钩子函数)之上的,在原生事件和setTimeout
中不会批量更新,在“异步”中如果对同一个值进行多次 setState , setState
的批量更新策略会对其进行覆盖,取最后一次的执行,如果是同时 setState 多个不同的值,在更新时会对其进行合并批量更新

2. react渲染机制

(1)当页面一打开,就会调用render构建一棵DOM树

(2)当数据发生变化( state | props )时,就会再渲染出一棵DOM树

(3)此时,进行diff运算,两棵DOM树进行差异化对比,找到更新的地方进行批量改动

3. React中refs 的作用是什么?

Refs 是 React 提供给我们的安全访问 DOM 元素或者某个组件实例的句柄

我们可以为元素添加 ref 属性然后在回调函数中接受该元素在 DOM 树中的句柄

该值会作为回调函数的第一个参数返回

4.在构造函数中调用 super(props) 的目的是什么

在 super() 被调用之前,子类是不能使用 this 的,在 ES2015 中,子类必须在 constructor 中调用
super()。传递 props 给 super() 的原因则是便于(在子类中)能在 constructor 访问 this.props

5. setState的两个参数

第一个参数是要改变的state对象

第二个参数是state导致的页面变化完成后的回调,等价于componentDidUpdate

以上是关于react面试题面试必备的主要内容,如果未能解决你的问题,请参考以下文章

react面试题面试必备

社招前端常见react面试题(必备)

ReactNative进阶(四十二):面试必备:2021 ReactNative经典面试题总结(含答案)

Nginx面试题(史上最全 + 持续更新)

MyBatis面试题(史上最全+不断升级)

2021前端面试必备题+答案