- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2025年高频前端面试题(含答案)
1.如何理解Vue3组合式API(CompositionAPI)与选项式API(OptionsAPI)的核心差异?实际项目中如何选择?
Vue3组合式API与选项式API的核心差异体现在代码组织方式和逻辑复用能力上。选项式API以data、methods、computed等选项划分代码块,适合小型项目,逻辑按功能类型分散在不同选项中;组合式API通过setup函数和自定义hook(如useFetch、useCounter)将关联逻辑聚合,解决了复杂组件中“逻辑关注点分散”的问题(例如一个组件同时涉及数据请求、表单验证、动画控制时,选项式API会导致同一逻辑的代码分散在data、methods、watch等不同选项里)。
选择依据:小型项目或需要快速上手时推荐选项式API,其结构符合直觉;中大型项目或需要高复用性逻辑(如跨组件共享的表单验证逻辑)时,组合式API通过自定义hook实现逻辑抽离更高效。需注意组合式API对TypeScript支持更友好,若项目使用TS,优先选择组合式API。
2.React18中Concurrent模式的核心改进是什么?如何影响组件渲染行为?
Concurrent模式的核心是“可中断的异步渲染”,通过优先级调度(Lane模型)和时间分片(基于requestIdleCallback优化)实现更平滑的用户体验。传统同步渲染(Legacy模式)中,组件渲染一旦开始就无法中断,若组件树复杂会导致主线程阻塞超过50ms,出现卡顿;Concurrent模式下,渲染过程可根据任务优先级中断,优先处理用户输入(如点击、滚动)等高优先级任务,待空闲时恢复低优先级渲染。
具体影响:①组件渲染可能被中断并重新开始(需保证组件纯函数特性,避免副作用在渲染阶段执行);②支持Suspense组件的异步边界(如数据加载时显示加载状态,数据就绪后无缝切换);③自动批处理(Batching)范围扩大,即使在setTimeout、Promise回调中调用setState也会合并更新(React18前仅事件回调内批处理)。
3.简述Vite4.x相比Webpack5的核心优势,以及各自适用场景。
Vite4.x基于ES模块原生支持(ESModules),开发阶段使用esbuild预构建依赖(速度比Webpack的babel快10-100倍),并通过HTTP服务器直接提供ES模块(无需打包),实现秒级冷启动和即时热更新(HMR耗时100ms)。生产环境使用Rollup打包,利用Tree-shaking和现代浏览器的原生支持优化产物。
Webpack5通过持久化缓存(cache:{type:filesystem})、模块联邦(ModuleFederation)、更智能的tree-shaking等特性提升构建性能,但开发阶段需完整打包,冷启动时间随项目增大而增加(大型项目可能超过10秒)。
适用场景对比:Vite适合现代框架(Vue/React/Svelte)的中大型前端项目(尤其注重开发体验)、静态网站(SSG)或轻量级应用;Webpack适合需要复杂插件生态(如传统多页应用、需要IE兼容)、微前端(模块联邦跨应用共享组件)或需要深度定制构建流程(如自定义优化器、多环境变量处理)的项目。
4.如何实现一个高性能的前端图片加载方案?需考虑哪些关键指标?
高性能图片加载方案需结合格式优化、加载策略、懒加载和缓存策略:
(1)格式优化:优先使用WebP(比JPEG小25-35%),对不支持的浏览器降级为AVIF(更高压缩率)或JPEGXL;图标类图片使用SVG(矢量无失真)或压缩后的PNG(通过ImageOptim工具压缩)。
(2)加载策略:①响应式图片(srcset+sizes):根据设备分辨率和视口宽度加载合适尺寸的图片(如imgsrcset=small.jpg480w,medium.jpg768w,large.jpg1200wsizes=(max-width:600px)480px,800px);②占位图(低质量模糊图LQIP或SVG占位):在图片加载前显示模糊预览,减少白屏时间。
(3)懒加载:使用IntersectionObserverAPI监听图片是否进入视口(替代传统的scroll事件监听),仅当图片接近可视区域时加载。注意设置loading=lazy属性(现代浏览器支持)作为补充。
(4)缓存策略:通过HTTP头设置长缓存(Cache-Control:max-age,图片哈希命名(如image-abc123.jpg)实现内容变化时自动失效;使用ServiceWorker缓存高频访问图片,离线时仍可显
原创力文档


文档评论(0)