排序
面试题:如何在 React 中创建一个事件?请举例说明
在 React 中,我们通常不直接创建原生 DOM 事件(如 new MouseEvent()),而是通过定义事件处理函数并将其绑定到 JSX 元素上来响应用户交互。React 使用合成事件系统(SyntheticEvent)来处理这...
面试题:为什么说:在 React 中,一切都是组件?
“在 React 中,一切都是组件” 这句话是 React 设计哲学的高度概括,它体现了 React 以组件为核心的开发模式。这里的“一切”并非字面意义上的所有事物,而是指用户界面(UI)的构建单元和逻辑...
面试题:React 中 key 的作用是什么?
在 React 中,key 是一个特殊的字符串属性,用于帮助 React 识别哪些元素发生了变化、被添加或被删除,从而在渲染列表时高效地更新 DOM。 核心作用:标识列表中元素的唯一性 当 React 渲染一个...
面试题:如何在 React 中阻止事件的默认行为?
在 React 中阻止事件的默认行为,需要调用事件对象(SyntheticEvent)上的 preventDefault() 方法。不能使用 return false 的方式,因为这在 React 中无效。 ✅ 正确方法:使用 event.preventDe...
面试题:React 生命周期有哪些阶段?每个阶段对应的函数是什么?
React 组件的生命周期描述了组件从创建到销毁的整个过程。在 React 16.3 版本之后,生命周期方法发生了重要更新,引入了新的静态生命周期方法,并标记了一些旧方法为不安全(即将废弃)。 以下...
面试题:React 的触摸事件有哪些?
在 React 中,为了支持移动设备上的触摸交互,提供了一系列触摸事件(Touch Events)。这些事件与原生 DOM 的触摸事件一一对应,但遵循 React 的合成事件系统(SyntheticEvent),并采用驼峰命...
面试题:在 React Router 中如何获取历史对象?
在 React Router 中,“历史对象”(history object)用于导航和管理浏览器的历史记录栈。获取历史对象的方式随着 React Router 版本的演进而变化,尤其在 v5 和 v6 之间有重大差异。 以下是不...
面试题:为什么在 React 项目标签中使用 htmlFor 而不是 for?
在 React 项目中使用 htmlFor 而不是 for,主要原因如下: 1. JavaScript 保留字冲突 for 是 JavaScript 的保留关键字,用于 for 循环(如 for (let i = 0; i < 10; i++))。 React 组件的 J...
面试题:React 中如何获取组件对应的 DOM 元素?
在 React 中,直接操作 DOM 通常不被推荐(应优先考虑状态驱动 UI),但在某些特定场景下(如管理焦点、触发动画、集成第三方库)需要访问真实的 DOM 元素。React 提供了 ref 来实现这一需求。 ...
面试题:如何将事件传递给 React 子组件?
在 React 中,由于事件处理逻辑通常位于父组件,而事件触发于子组件(如按钮点击),因此需要将事件处理函数从父组件作为 props 传递给子组件。这是 React 数据和逻辑自上而下流动的典型体现。 ...
