React 常见面试题及答案
记录面试过程 常见问题,如有错误,欢迎批评指正
1. 什么是虚拟DOM?为什么它提高了性能?
虚拟DOM是React创建的一个轻量级JavaScript对象,表示真实DOM的结构。当状态变化时,React会生成新的虚拟DOM,并通过Diff算法比较新旧差异,仅更新变化的部分到真实DOM。这减少了直接操作DOM的次数,避免了昂贵的重绘和重排,从而提升性能。
2. React类组件和函数组件的区别?Hooks的作用是什么?
类组件:使用ES6类定义,有生命周期方法和状态(this.state)。
函数组件:无状态,但通过Hooks(如useState, useEffect)可管理状态和副作用。
Hooks作用:允许函数组件使用状态、生命周期等特性,简化代码并促进逻辑复用。
3. 解释useEffect的依赖数组的作用。
空数组[]:仅在组件挂载和卸载时执行(类似componentDidMount和componentWillUnmount)。
无数组:每次渲染后都执行。
包含变量的数组[a, b]:当a或b变化时执行。
4. 受控组件与非受控组件的区别?
受控组件:表单数据由React组件管理(通过value和onChange)。
非受控组件:表单数据由DOM自身管理,通过ref获取值(如<input ref={inputRef} />)。
5. 为什么列表渲染时需要key?
key帮助React识别元素变化,优化Diff算法效率。若缺少key,可能导致性能下降或渲染错误(如状态错乱)。
6. React Router如何实现动态路由和路由守卫?
动态路由:使用参数占位符(如<Route path="/user/:id" />),通过useParams()获取参数。
路由守卫:封装<Route>组件,结合useNavigate和条件渲染(如检查用户权限后重定向)。
7. React性能优化方法有哪些?
常用方法:
a、使用React.memo缓存组件。
b、useMemo和useCallback避免重复计算和函数重建。
c、代码分割(React.lazy + Suspense)实现懒加载。
d、避免在渲染函数中进行高开销操作。
8. Redux的核心概念是什么?与Context API的区别?
Redux核心:单一状态树,通过action触发reducer更新状态,使用中间件处理异步。
与Context区别:Redux适合大型应用全局状态管理,提供调试工具和中间件;Context适合局部跨层级数据传递,无需额外库。
9. React合成事件是什么?
React将浏览器原生事件封装为合成事件,提供跨浏览器一致性,并自动管理事件绑定(事件委托到根节点)。
10. 错误边界(Error Boundaries)如何实现?
通过类组件的static getDerivedStateFromError()和componentDidCatch()捕获子组件树中的错误,显示降级UI(函数组件暂不支持)。
11. React 18有哪些新特性?
主要特性:
a、并发模式(Concurrent Mode):可中断渲染,优化用户体验。
b、自动批处理:合并多个状态更新,减少渲染次数。
c、新Hooks:如useId生成唯一ID,useTransition管理非紧急更新。
12. Hooks使用规则有哪些?
规则:
只在函数组件或自定义Hooks顶层调用。
不能在循环、条件或嵌套函数中使用。
13. JSX是什么?如何转换为JavaScript?
JSX是语法糖,会被Babel转换为React.createElement()调用,生成React元素对象(如React.createElement('div', null, 'Hello'))。
14. 高阶组件(HOC)与Render Props的区别?
HOC:通过函数包装组件,返回增强功能的新组件(如withRouter(Component))。
Render Props:通过组件传递函数prop动态渲染内容(如<DataProvider render={data => <Child data={data} />} />)。
15. React严格模式的作用?
检测不安全的生命周期方法、过时的API使用,识别意外的副作用(如重复调用渲染函数),帮助提升代码质量。
相关文章:
React 常见面试题及答案
记录面试过程 常见问题,如有错误,欢迎批评指正 1. 什么是虚拟DOM?为什么它提高了性能? 虚拟DOM是React创建的一个轻量级JavaScript对象,表示真实DOM的结构。当状态变化时,React会生成新的虚拟DOM…...
和鲸科技推出人工智能通识课程解决方案,助力AI人才培养
2025年2月,教育部副部长吴岩应港澳特区政府邀请,率团赴港澳宣讲《教育强国建设规划纲要 (2024—2035 年)》。在港澳期间,吴岩阐释了教育强国目标的任务,并与特区政府官员交流推进人工智能人才培养的办法。这一系列行动体现出人工智…...
免费使用 DeepSeek API 教程及资源汇总
免费使用 DeepSeek API 教程及资源汇总 一、DeepSeek API 资源汇总1.1 火山引擎1.2 百度千帆1.3 阿里百炼1.4 腾讯云 二、其他平台2.1 华为云2.2 硅基流动 三、总结 DeepSeek-R1 作为 2025 年初发布的推理大模型,凭借其卓越的逻辑推理能力和成本优势,迅速…...
网络安全-使用DeepSeek来获取sqlmap的攻击payload
文章目录 概述DeepSeek使用创建示例数据库创建API测试sqlmap部分日志参考 概述 今天来使用DeepSeek做安全测试,看看在有思路的情况下实现的快不快。 DeepSeek使用 我有一个思路,想要测试sqlmap工具如何dump数据库的: 连接mysql数据库&#…...
网络原理--TCP/IP(2)
我们在之前已经介绍到TCP协议的核心机制二,接下来我们将继续介绍其他的核心机制。 核心机制三:连接管理 即建立连接,断开连接,在正常情况下,TCP要经过三次握⼿建⽴连接,四次挥⼿断开连接。 建立连接:TCP是通过“三次握手” 在生活中的握手就是打招呼,,但握手操作没有…...
Ragflow与Dify之我见:AI应用开发领域的开源框架对比分析
本文详细介绍了两个在AI应用开发领域备受关注的开源框架:Ragflow和Dify。Ragflow专注于构建基于检索增强生成(RAG)的工作流,强调模块化和轻量化,适合处理复杂文档格式和需要高精度检索的场景。Dify则旨在降低大型语言模…...
文件上传漏洞绕过WAF
文件上传漏洞绕过WAF学习笔记 1. WAF检测原理 WAF(Web应用防火墙)通过以下方式拦截文件上传攻击: 关键字匹配:检测文件名、内容中的敏感词(如<?php、eval)。 扩展名黑名单:拦截.php、.jsp…...
[含文档+PPT+源码等]精品基于Python实现的vue3+Django计算机课程资源平台
基于Python实现的Vue3Django计算机课程资源平台的背景,可以从以下几个方面进行阐述: 一、教育行业发展背景 1. 教育资源数字化趋势 随着信息技术的快速发展,教育资源的数字化已成为不可逆转的趋势。计算机课程资源作为教育领域的重要组成部…...
Qt 开源音视频框架模块之QtAV播放器实践
Qt 开源音视频框架模块QtAV播放器实践 1 摘要 QtAV是一个基于Qt的多媒体框架,旨在简化音视频播放和处理。它是一个跨平台的库,支持多种音视频格式,并提供了一个简单易用的API来集成音视频功能。QtAV的设计目标是为Qt应用程序提供强大的音视…...
【前端】XML,XPATH,与HTML的关系
XML与HTML关系 XML(可扩展标记语言)和 HTML(超文本标记语言)是两种常见的标记语言,但它们有不同的目的和用途。它们都使用类似的标记结构(标签),但在设计上存在一些关键的差异。 XML…...
ubuntu服务器安装VASP.6.4.3
ubuntu服务器安装VASP.6.4.3 1 安装Intel OneAPI Base Toolkit和Intel OneAPI HPC Toolkit1.1 更新并安装环境变量1.2 下载Intel OneAPI Base Toolkit和Intel OneAPI HPC Toolkit安装包1.3 安装 Intel OneAPI Base Toolkit1.4 安装 Intel OneAPI HPC Toolkit1.5 添加并激活环境…...
市场加速下跌,但监管「坚冰」正在消融
作者:Techub 热点速递 撰文:Yangz,Techub News 与近日气温逐步回暖不同,自 2 月 25 日比特币跌破 9 万美元以来,加密货币市场行情一路下滑。今日 10 时 50 分左右,比特币更是跌破 8 万美元大关,…...
7.2 - 定时器之计算脉冲宽度实验
文章目录 1 实验任务2 系统框图3 软件设计 1 实验任务 本实验任务是通过CPU私有定时器来计算按键按下的时间长短。 2 系统框图 参见7.1。 3 软件设计 注意事项: 定时器是递减计数的,需要考虑StartCount<EndCount的情况。 /***********…...
Imagination DXTP GPU IP:加速游戏AI应用,全天候畅玩无阻
日前,Imagination 推出了最新产品——Imagination DXTP GPU IP,在智能手机和其他功耗受限设备上加速图形和AI工作负载时,保证全天候的电池续航。它是我们最新D系列GPU的最终产品,集成了自2022年发布以来引入的一系列功能ÿ…...
关于流水线的理解
还是不太理解,我之前一直以为,对axis总线,每一级的寄存器就像fifo一样,一级一级的分级存储最后一级需要的数据。(现在看来,我这个理解应该也是没有问题的) 如下图,一开始是在解析axi…...
采样算法二:去噪扩散隐式模型(DDIM)采样算法详解教程
参考 https://arxiv.org/pdf/2010.02502 一、背景与动机 去噪扩散隐式模型(DDIM) 是对DDPM的改进,旨在加速采样过程同时保持生成质量。DDPM虽然生成效果优异,但其采样需迭代数百至数千次,效率较低。DDIM通过以下关键…...
北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)
近年来,大模型技术飞速发展,但许多用户发现:即使使用同一款 AI 工具,效果也可能天差地别——有人能用 AI 快速生成精准方案,有人却只能得到笼统回答。这背后的关键差异,在于提示词工程的应用能力。 北京大…...
Hutool - POI:让 Excel 与 Word 操作变得轻而易举
各位开发者们,在日常的 Java 开发工作里,处理 Excel 和 Word 文件是相当常见的需求。无论是从 Excel 里读取数据进行分析,还是将数据写入 Excel 生成报表,亦或是对 Word 文档进行内容编辑,传统的 Apache POI 库虽然功能…...
IDEAPyCharm安装ProxyAI(CodeGPT)插件连接DeepSeek-R1教程
背景:最近DeepSeek比较火嘛,然后在githup上也看到了GitHub Copilot,就想着现在AI的准确率已经可以提高工作效率了。所以从网上找了一些编程插件,发现Proxy支持的模型比较多,通用性和适配性比较好。所以本文记录一下pro…...
Iceberg Catalog
使用限制 支持 Iceberg V1/V2 表格式。支持 Position Delete。2.1.3 版本开始支持 Equality Delete。支持 Parquet 文件格式2.1.3 版本开始支持 ORC 文件格式。 创建 Catalog 基于 Hive Metastore 创建 Catalog 和 Hive Catalog 基本一致,这里仅给出简单示…...
Skills 系统——让 AI 秒变专家
1. 技能的本质:提示词工程 在 nanobot 中,一个技能就是一个文件夹,核心是里面的 SKILL.md。 nanobot内置的skills放在project_path/nanobot/skills目录下,用户自定义的skills放在workspace/.nanobot/skills目录下 以 weather 技…...
Go语言的分布式事务处理
Go语言的分布式事务处理 1. 分布式事务简介 在分布式系统中,事务处理变得更加复杂。传统的单机事务可以通过数据库的ACID特性来保证一致性,但在分布式环境中,由于网络延迟、节点故障等因素,确保多个服务之间的数据一致性成为一个挑…...
comsol方形锂电池电化学—热耦合模型充放电循环热仿真,三种模型 一维电化学模型耦合三维方形...
comsol方形锂电池电化学—热耦合模型充放电循环热仿真,三种模型 一维电化学模型耦合三维方形铝壳电池模型 还包括电池组风冷、相变散热模型最近在折腾方形锂电池的充放电热仿真,发现电化学和热耦合的坑比想象中深。尤其是当一维电化学模型要和三维结构联…...
技术主管如何降低TVA系统全生命周期成本
对于企业技术主管而言,TVA系统在汽车零部件焊接点检测中的应用,不仅要保障检测质量与效率,还要做好成本管控,避免出现“前期采购成本过高”“后期运维成本失控”“资源浪费”等问题。当前,不少企业因缺乏科学的成本管控…...
2025届学术党必备的六大AI科研网站推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 为能切实有效地把文本的AIGC检测概率给降低下来,得从业经历连贯性以及统计规律这…...
华为MateBook X Pro 2020款在Ubuntu系统中直接使用原生的杜比全景声效果
华为MateBook X Pro 2020款在Ubuntu系统中无法直接使用原生的杜比全景声效果,但可以通过软件模拟获得接近的音频体验。 硬件基础:杜比全景声系统 MateBook X Pro 2020款配备了华为与杜比联合设计的高低音分频四扬声器系统(双高音喇叭双下沉式…...
5分钟掌握gInk:Windows上最简单高效的免费屏幕标注工具完整指南
5分钟掌握gInk:Windows上最简单高效的免费屏幕标注工具完整指南 【免费下载链接】gInk An easy to use on-screen annotation software inspired by Epic Pen. 项目地址: https://gitcode.com/gh_mirrors/gi/gInk 你是否曾在演示时想要快速圈出重点数据&…...
G3810,G2810,TS3380,MP288,E568,TS3480,MG3680,IP4800,MX328,IX6580,MG7780清零软件,5B00,P07,E08,亲测软件好用,好评。
下载:点这里下载 备用:链接:https://pan.baidu.com/s/1j7Nwv715wX1JL3qidnGyXA?pwd0000 常见型号如下: G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G182…...
EViews实战:时间序列分析的平稳性检验与建模全流程
1. 时间序列分析入门:为什么需要平稳性检验? 我第一次接触时间序列分析时,最困惑的就是为什么要做平稳性检验。直到在金融数据分析项目里踩了坑才明白:非平稳序列直接建模会导致预测结果完全失真。比如分析某上市公司股价时&#…...
系统资源诊断与性能优化:使用Hotkey Detective实现高效热键冲突管理
系统资源诊断与性能优化:使用Hotkey Detective实现高效热键冲突管理 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...
