前端React基础面试题
1,说说react里面bind函数与箭头函数
bind 由于在类中,采用的是严格模式,所以事件回调的时候会丢失this指向,指向的undefined,需要使用bind来给函数绑定上当前实例的this指向。
箭头函数的this指向上下文,所以永久能拿到当前组件实例的。this指向我们可以完美的使用箭头函数来替代传统事件处理函数的回调。
2,说出几点React中的性能优化
- 使用shouldComponentUpdate来对state和props进行对比,如果两次的结果一样,那么就return false;
- 使用纯函数组件pureComponent;
3,简单解释下高阶组件和高阶函数
- 高阶函数,指的是函数接收一个函数作为参数,或者将函数作为返回值的函数就是高阶函数 。
- 高阶组价,接受一个组件,并返回一个新组建的组件就是高阶组件,本质上和高阶函数的意思一样的,高阶组件是用来复用react代码的一种方式。
4,setState和repalceState有什么区别
- setState 是修改其中的部分状态,相当于 Object. assign,只是覆盖,不会减少原来的状态。
- replaceState 是完全替换原来的状态,相当于赋值,将原来的 state 替换为另一个对象,如果新状态属性减少,那么 state 中就没有这个状态了。