React面试题。

177 阅读3分钟

1、React 事件机制

react事件并不是把事件绑定到div的真实DOM上,而是在document处进行监听,当事件发生并冒泡到document处时就把事件封装并交给真正的事件处理函数,如果哦想要取消默认事件,那么就需要使用event.prevendefault,当然react事件不是原生事件而是合成事件。

2、React 高阶组件、Render props、hooks 有什么区别,为什么要不断迭代

高阶组件就是HOC,用来复用组件逻辑,接受一个组件作为参数,返回一个新的组件。 HOC可以在不修改原组件的情况下,追加功能。

props是把函数作为props进行传递,实现数据的共享。 props频繁使用的话就会比较冗余。

Hooks是react16.8的特性,可以修改状态。

3、React 高阶组件是什么,和普通组件有什么区别,适用什么场景

HOC就是高阶组件,用来复用组件逻辑,接受一个组件作为参数,返回一个新的组件, 适用于条件渲染。

4、哪些方法会触发 React 重新渲染?重新渲染 render 会做些什么?

使用setState可以触发页面的重新渲染 当props发生改变时也会触发页面的重新渲染 使用foraceUpdata时也会触发页面的重新渲染 当父组件发生改变时也会触发子组件的重新渲染

render时就会生成虚拟DOM 当虚拟DOM时会对比新旧DOM,然后就会更新。 按照需要的更新在去更新,没有变的就不需要更新。

5、对有状态组件和无状态组件的理解及使用场景

有状态组件就是类组件 有继承,有this,有react生命周期。 无状态组件就是函数组件没有继承,完全避免了this的使用。如果使用生命周期不频繁的时候我们就可以使用函数式组件

6、React中什么是受控组件和非控组件?

7、类组件与函数组件有什么异同?

8、React setState 调用的原理

9、React setState 调用之后发生了什么?是同步还是异步?

10、在React中组件的this.state和setState有什么区别?

11、React组件的state和props有什么区别?

12、React的生命周期有哪些?

13、父子组件的通信方式?

14、跨级组件的通信方式?

15、非嵌套关系组件的通信方式?

16、组件通信的方式有哪些

17、React-Router的实现原理是什么?

18、React-Router的路由有几种模式?

19、对 Redux 的理解,主要解决什么问题

20、Redux 原理及工作流程

21、Redux 和 Vuex 有什么区别,它们的共同思想

22、对 React Hook 的理解,它的实现原理是什么

23、为什么 useState 要使用数组而不是对象

24、React Hooks 解决了哪些问题?

25、对虚拟 DOM 的理解?虚拟 DOM 主要做了什么?虚拟 DOM 本身是什么?

26、React diff 算法的原理是什么?

27、对 React 和 Vue 的理解,它们的异同

28、在React中遍历的方法有哪些?

29、对React SSR的理解

30为什么 React 要用 JSX?