React 基础面试题, React 组件的 state 和 props 有什么区别?
React 基础面试题, React 组件的 state 和 props 有什么区别?
QA
Step 1
Q:: React 组件的 state 和 props 有什么区别?
A:: State 和 props 是 React 组件的重要组成部分。State 是组件内部管理的数据,可以被组件自身改变,通常用于管理组件的交互数据。Props 则是由父组件传递给子组件的数据,不可在子组件内部修改,通常用于数据的展示或控制子组件的行为。
Step 2
Q:: React 中如何处理组件之间的通信?
A:: React 中组件之间的通信通常通过 props 传递数据。如果是兄弟组件间通信,可以通过将数据提升到共同的父组件,再通过 props 传递给兄弟组件。另外,也可以使用 React 的 Context API 来实现全局状态管理,或者通过状态管理库如 Redux 来处理复杂的组件通信。
Step 3
Q:: React 中如何优化性能?
A:: React 性能优化可以通过多种方式进行,如使用 React.memo 来防止不必要的重新渲染,使用 useCallback 和 useMemo 来缓存函数和计算结果,避免过度的计算开销,懒加载组件 (React.lazy 和 Suspense)
以减少初始渲染时的加载时间,以及通过 shouldComponentUpdate、PureComponent 等方法控制组件的更新。
Step 4
Q:: React 的生命周期方法有哪些?
A:: React 类组件的生命周期方法分为三个阶段:挂载(componentDidMount)、更新(componentDidUpdate)、卸载(componentWillUnmount)。在函数组件中,React 使用 useEffect 钩子来模拟这些生命周期方法。不同的生命周期方法适用于不同的场景,如数据获取、事件监听和清理等。
Step 5
Q:: 如何在 React 中管理表单状态?
A:: 在 React 中管理表单状态通常通过受控组件来实现,表单元素的值通过组件的 state 管理,输入变化时调用事件处理函数更新 state。也可以使用非受控组件,通过 ref 来直接操作 DOM 元素,管理表单状态。此外,对于复杂的表单,可以使用表单管理库如 Formik 或 React Hook Form。