interview
react-basics
React 的类组件和函数式组件有什么区别

React 基础面试题, React 的类组件和函数式组件有什么区别?

React 基础面试题, React 的类组件和函数式组件有什么区别?

QA

Step 1

Q:: React 的类组件和函数式组件有什么区别?

A:: React 类组件(Class Component)是使用ES6的class语法定义的组件,它们可以拥有自己的状态(state)和生命周期方法,如componentDidMount、componentDidUpdate等。函数式组件(Functional Component)是使用函数定义的组件,之前它们只能接收props,不能拥有自己的状态和生命周期方法,但自从React 16.8版本引入了Hooks,函数式组件也可以使用state和其他功能,增强了它们的功能性。

Step 2

Q:: React 中的生命周期方法是什么?

A:: React 的生命周期方法是类组件特有的一些方法,用于在组件的不同阶段执行特定代码。主要包括三个阶段:1) 挂载阶段(Mounting):componentDidMount等方法。2) 更新阶段(Updating):componentDidUpdate等方法。3) 卸载阶段(Unmounting):componentWillUnmount方法。函数式组件通过使用useEffect等Hook来实现类似的效果。

Step 3

Q:: React Hooks 是什么?

A:: React Hooks 是 React 16.8 引入的一项新特性,允许在函数式组件中使用状态和其他 React 特性。常用的 Hooks 包括 useState、useEffect、useContext、useMemo 和 useReducer 等。它们让函数式组件能够执行以前只能在类组件中使用的功能。

Step 4

Q:: 如何在 React 中管理组件状态?

A:: 在 React 中,组件的状态(state)可以使用类组件中的 this.state 和 this.setState 方法管理,或在函数式组件中通过 useState Hook 管理。对于复杂的状态管理,可以使用 useReducer Hook,或者结合外部状态管理工具,如 Redux 或 MobX。

Step 5

Q:: React 中的 PropTypes 和 TypeScript 有什么区别?

A:: PropTypes 是 React 的一种类型检查工具,允许开发者为组件的 props 指定预期的类型,从而在运行时捕获类型错误。TypeScript 是一种静态类型检查工具,它在编译阶段就能捕获类型错误,并提供更强大的类型系统和自动补全功能。TypeScript 能够为整个应用提供更严格的类型安全,而 PropTypes 通常只用于 React 组件的 props 检查。

用途

在面试中问及类组件和函数式组件的区别,主要是为了了解候选人对 React 组件构建的基础知识掌握情况。类组件和函数式组件的选择不仅影响代码的结构和可读性,还关系到组件的性能优化和状态管理方式。在实际生产环境中,理解这两者的区别有助于选择最合适的组件形式,进而提高开发效率和代码质量。此外,熟悉 React Hooks 是现代 React 开发中不可或缺的一部分,因为它们极大地简化了函数式组件的使用,减少了对类组件的依赖。\n

相关问题

🦆
React 的虚拟DOMVirtual DOM是什么?

虚拟DOM 是 React 中的一种轻量级的、在内存中表示DOM树的对象。每次UI更新时,React会创建一个新的虚拟DOM树,并将其与旧的虚拟DOM树进行比较(这个过程称为调和Reconciliation),找出差异后只更新实际DOM中发生变化的部分。这种方式极大地提高了性能,因为它减少了直接操作真实DOM的频率。

🦆
什么是 React 的高阶组件HOC?

高阶组件(Higher-Order Component, HOC)是一种用于复用组件逻辑的高级技巧。HOC 是一个接受组件作为参数并返回一个新组件的函数。它可以用于将多个组件的公共逻辑抽离出来,增强组件的功能。例如,授权验证、数据获取等场景常使用 HOC 来处理。

🦆
如何优化 React 应用的性能?

优化 React 应用的性能可以从多个方面入手:1) 使用 shouldComponentUpdate、React.memo 等方法或工具来避免不必要的渲染。2) 使用 React.lazy 和 Suspense 实现代码分割。3) 适当地使用 useMemo 和 useCallback 来缓存计算结果和函数。4) 在合适的场景下使用虚拟化技术,如 react-window 和 react-virtualized。

🦆
React 中的Context API是什么?

Context API 是 React 提供的一个用于全局状态管理的工具,它允许你在组件树中通过Context Provider和Context Consumer在深层嵌套的组件中传递数据,而无需逐层传递props。Context API 适合用于全局状态(如主题、用户信息)的管理,但对于复杂的状态管理,建议结合 Redux 或 MobX 使用。