React面试题
第一部分 函数组件 和 类组件
React组件之间如何实现通讯
- 通过 Props 传递数据:React 中的组件可以通过 props 机制来接收其父组件传递的数据。父组件可以将数据作为 props 的属性值传递给子组件,子组件可以通过 props 对象访问这些数据
- 通过 Context 共享数据:Context 是 React 提供的一种跨组件层次共享数据的机制。通过创建一个上下文(context)对象,可以在组件树的任何地方读取到该对象所对应的值
- 通过自定义事件传递数据:如果希望在 React 组件之间进行双向通信,可以使用自定义事件机制。例如,可以在一个组件中定义一个回调函数,并将该函数作为 props 传递给另一个组件,然后在另一个组件中调用该回调函数,从而实现数据的传递和更新
JSX本质是什么
- 他本质是javascript的语法扩展 允许我们在javascript代码中编写类似于HTML的标记结构
context是什么 如何应用
- 他是react提供的一种跨组件层次共享数据的机制,可以让我们在组件树中的任何地方传递数据,而不需要手动逐层通过props进行传递
- 它由两个部分组成 context 对象和provider组件:创建context对象 使用provider提供数据
shouldComponentUpdate
- 它是一个用于性能优化的生命周期方法。它决定了组件是否需要重新渲染
默认情况下,当组件的状态(state)或属性(props)发生变化时,React 会重新渲染组件及其子组件。然而,在某些情况下,我们可能希望控制何时进行重新渲染,以提高应用程序的性能。
shouldComponentUpdate
方法在组件将要更新之前被调用,它接收两个参数:nextProps
和nextState
,表示下一次渲染时的属性和状态。该方法的返回值决定了组件是否进行重新渲染。默认情况下,shouldComponentUpdate
返回true
,即组件总是会进行重新渲染
常见用途 1.性能优化 2.属性比较3.状态比较4.引用相等性检查
redux单向数据流的机制
- 它是一个遵循单项数据流机制的状态管理库
- redux的单向数据流基于以下几个概念
- store 一个存储应用程序状态的容器。Store 是 Redux 数据流的核心,所有数据的变化都发生在 Store 中
- Action:代表对数据进行修改的意图。Action 是一个普通 JavaScript 对象,包含了要添加到 Store 的新数据
- Dispatcher:一个简单的手段来发送 Action 到 Reducer
React类组件的setstate是同步操作还是异步操作
- setstate通常是异步操作,这意味着在调用setstate后,并不能立即获取到更新后的状态值