React 基础面试题, 在 React 中,组件和元素有什么区别?
React 基础面试题, 在 React 中,组件和元素有什么区别?
QA
Step 1
Q:: 在 React 中,组件和元素有什么区别?
A:: 在 React 中,元素是构成用户界面的最小单元。元素是不可变的,即一旦被创建,就无法修改。元素用来描述屏幕上应该出现什么内容。组件则是更高级别的构造,组件是可以接受输入(即 props)并返回一个 React 元素的 JavaScript 函数或类。组件可以是有状态的或无状态的,能够通过生命周期方法来管理状态和交互。简单来说,元素是 UI 的基本结构,而组件是可以组合、管理状态并返回元素的结构。
Step 2
Q:: 什么是 React 的虚拟 DOM?它有什么优势?
A:: 虚拟 DOM 是 React 的一个关键概念,它是一种轻量级的 JavaScript 对象,用来表示实际的 DOM 树。每次状态改变时,React 都会先在虚拟 DOM 中计算出需要更新的部分,然后通过最小化实际 DOM 操作的方式进行高效更新。这种机制的优势在于,它可以避免不必要的 DOM 操作,从而提高性能,特别是在需要频繁更新 UI 的场景下。
Step 3
Q:: React 的生命周期方法有哪些?
A:: React 的组件生命周期方法分为挂载、更新和卸载三个阶段。在挂载阶段,常用的方法有 constructor()
、componentDidMount()
;在更新阶段,有 shouldComponentUpdate()
、componentDidUpdate()
;在卸载阶段,有 componentWillUnmount()
。这些生命周期方法允许开发者在组件的不同状态下执行特定的逻辑,例如初始化数据、更新 DOM、清理资源等。
Step 4
Q:: React 中的状态(state)和属性(props)有什么区别?
A:: 状态(state)和属性(props)是 React 中的两个核心概念。props
是父组件传递给子组件的数据,子组件无法修改 props
,它是只读的。而 state
是组件自己管理的数据,可以通过 this.setState
来更新。props
更适合用来传递从父组件到子组件的静态数据,而 state
则用来管理组件内部动态的数据。