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
相关推荐
Adolf_19935 分钟前
axios拦截器
前端·javascript
多啦C梦a16 分钟前
《ProtectRoute怎么用?》 前端登录拦截器!React ProtectRoute + 懒加载,从入门到会用
前端·javascript·react.js
sophie旭18 分钟前
《深入浅出react》总结之 10.3 Commit阶段流程探秘
前端·react.js·源码阅读
绅士玖19 分钟前
🔍 深入理解React的useContext Hook:从原理到实战
前端·react.js
植物昂光20 分钟前
基于Node.js的微博热榜抓取与展示开发记录
前端·node.js
面包蟹20 分钟前
JavaScript 的深浅拷贝
前端·javascript
再见了那维莱特21 分钟前
React Server API + Vite 简单实现SSR【根据文档提供的案例进行分析】
前端
前端一小卒23 分钟前
《深入浅出 React 19:AI 视角下的源码解析与进阶》- diff算法核心
前端·javascript·react.js
plusone23 分钟前
【React18源码解析】(零)写在最开始
react.js·前端框架·源码
半世浮生25 分钟前
uniapp开发微信路由踩坑
前端·uni-app