React 面试题集锦

目录

如果想要在组件第一次加载后获取该组件的dom元素,应当在以下哪个生命周期中进行

React支持的键盘事件是

[使用严格模式(Strict Mode)优点](#使用严格模式(Strict Mode)优点)

[React 动态引入组件](#React 动态引入组件)

当使用ReactDOM.unmountComponentAtNode从DOM中卸载组件时

说一下useState什么时候同步什么时候异步


如果想要在组件第一次加载后获取该组件的dom元素,应当在以下哪个生命周期中进行

componentDidMount()会在组件挂载后立即调用。

React支持的键盘事件是

React支持的键盘事件有onKeyDown(刚按下),onKeyPress(按着),onKeyUp(即将放开)。

使用严格模式(Strict Mode)优点

  1. 识别不安全的生命周期组件
  2. 有关旧式字符串ref用法的警告
  3. 关于使用废弃的 findDOMNode 方法的警告
  4. 检测意外的副作用
  5. 检测过时的 context API

React 动态引入组件

javascript 复制代码
const Content = lazy(() => import('@/pages/Content/Content'));

当使用ReactDOM.unmountComponentAtNode从DOM中卸载组件时

ReactDOM.unmountComponentAtNode() 用于从 DOM 中卸载组件,会将其事件处理器(event handlers)和 state 一并清除。

说一下useState什么时候同步什么时候异步

在正常的react的事件流

  1. setState和useState是异步执行的(不会立即更新state的结果)
  2. 多次执行setState和useState,只会调用一次重新渲染render
  3. 不同的是,setState会进行state的合并,而useState则不会

在setTimeout,Promise.then等异步事件中

  1. setState和useState是同步执行的(立即更新state的结果)
  2. 多次执行setState和useState,每一次的执行setState和useState,都会调用一次render
相关推荐
wuk9981 天前
实现ROS系统的Websocket传输,向Web应用推送sensor_msgs::Image数据
前端·websocket·网络协议
合作小小程序员小小店1 天前
web网页开发,在线%考试管理%系统,基于Idea,vscode,html,css,vue,java,maven,springboot,mysql
java·前端·系统架构·vue·intellij-idea·springboot
天天进步20151 天前
CSS Grid与Flexbox:2025年响应式布局终极指南
前端·css
Boop_wu1 天前
[Java EE] 计算机基础
java·服务器·前端
Novlan11 天前
TDesign UniApp 组件库来了
前端
用户47949283569151 天前
React DevTools 组件名乱码?揭秘从开发到生产的代码变形记
前端·react.js
顾安r1 天前
11.8 脚本网页 打砖块max
服务器·前端·html·css3
倚栏听风雨1 天前
typescript 方法前面加* 是什么意思
前端
狮子不白1 天前
C#WEB 防重复提交控制
开发语言·前端·程序人生·c#
菜鸟‍1 天前
【前端学习】阿里前端面试题
前端·javascript·学习