自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(391)
  • 收藏
  • 关注

原创 特斯拉前端开发二面 外企前端面试全程记录

粉丝投稿:双非本科面特斯拉前端开发实录三轮技术面试紧扣车联网实战,全程无八股文。一面深入车载数据可视化项目,追问基于WebSocket+Canvas的大屏渲染性能优化。我提出分帧加载与数据采样方案后,被连续追问“10万条/秒实时数据下如何保证渲染不卡顿”,思考片刻后补充了Web Worker离屏渲染与动态降级策略。二面围绕电池健康度预测平台前端设计,要求从多维度数据看板到模型结果可视化全链路方案。

2026-02-03 17:17:00 268

原创 Vue 3 路由守卫中安全使用 Composition API 的最佳实践

为路由守卫创建独立函数// ✅ 独立函数,不依赖 Composition API// ...使用安全的 i18n 包装器// ✅ 优雅降级try {return t} catch {动态导入避免循环依赖// ✅ 按需加载从 Store 获取数据,不依赖 Vue 实例// ✅ 直接访问 store.userType使用 createApp 动态挂载组件// ✅ 独立的 Vue 应用实例render() {})理解 Composition API 的上下文限制必须在 Vue 组件的。

2026-02-03 16:56:32 724

原创 Vue-插槽 (Slot) 的多种高级玩法

在组件化开发中,插槽 (Slot)是实现内容分发(Content Distribution)的核心机制。它允许我们将组件的“外壳”与“内容”解耦,让组件具备极高的扩展性。插槽是子组件提供给父组件的“占位符”,用标签表示。父组件传递的任何模板代码(HTML、组件等)都会替换子组件中的<slot>标签。插槽类型使用场景默认插槽组件只有一个扩展点时使用。具名插槽组件有多个固定区域(如 Header/Main/Footer)需要自定义时使用。作用域插槽。

2026-02-03 16:43:59 49

原创 招了个前端女生,才三天就被劝退了[特殊字符]

✅ 系统性解决:先区分简单请求与预检请求(OPTIONS),本地开发用代理(如 webpack devServer proxy),生产环境可配置 CORS 头(Access-Control-Allow-Origin),注意携带 cookie 时需 withCredentials。✅ 系统思路:先用 Lighthouse 分析性能评分,检查资源加载时序(是否阻塞渲染)、打包体积是否过大(路由懒加载、代码分割),再用 Performance 面板定位长任务,最后考虑 SSR/预渲染方案。

2026-02-02 17:03:38 783

原创 2026年了,你还在用传统滚动监听做懒加载?试试这种现代方案

当我们进入某个包含大量图片的网站时,网页内的图片却迟迟加载不出来,给我们带来了极差的用户体验,而懒加载技术,正是解决这类问题的有效手段之一。传统的滚动监听懒加载方式在过去发挥了重要作用,但随着技术的不断革新,2026年的今天,我们有了更为现代、高效的方案可供选择。接下来,就让我们深入探究一番。懒加载(Lazy Loading)是前端开发中延迟加载非关键资源的优化技术,通过仅在资源进入用户可视区域时加载,显著减少初始请求数、降低内存占用,提升页面加载速度和用户体验。作用。

2026-02-02 14:53:52 746

原创 Vue<前端页面版本检测>

构建阶段 → 版本文件生成 → 运行时检测 → 版本对比 → 用户提醒。

2026-02-02 14:44:05 372

原创 瑞幸前端开发二面 28k前端面试全程记录

二面给库存实时展示场景,要防用户看到过期数据,我提WebSocket + 本地乐观更新 + 兜底轮询,又被问“WebSocket大规模断连时前端如何平滑降级”,答了连接状态监听 + 自动切换为长轮询 + 界面提示弱网状态才过。一面聊早高峰秒杀页面渲染,我答SSR + 边缘缓存 + 资源预加载,被追问“低端机SSR白屏时间超过2秒怎么优化”,补了流式渲染 + 关键组件CSR降级方案才过关。粉丝投稿,双非本科,面的前端开发方向,3轮技术面共2.5小时,全程扣复杂业务场景。

2026-01-30 15:20:34 214

原创 TypeScript深度思考:一个TodoList项目教会你的不仅是语法

通过这个 TodoList 项目,希望你能明白 TypeScript 不仅仅是“加类型”,而是一种思维方式的转变。从“我打算怎么写代码”转变为“我定义了什么规则,代码必须遵守规则”。不要害怕报错,每一次 TS 的报错提示,都是它在教你如何写出更健壮的代码。继续加油!

2026-01-30 15:07:01 604

原创 Vue3侦听器实战:组件与Pinia状态监听如何高效应用?

默认情况下,侦听器是浅层的,只会监听引用类型的引用变化,不会监听内部属性变化。:当使用getter函数作为watch源时,deep选项会被忽略,因为getter函数返回的是一个值,而不是引用类型。假设我们有一个表单组件,需要将表单数据同步到Pinia store中,同时当store中的数据变化时,表单也需要更新。侦听器是Vue3中用于响应数据变化的核心工具,当你需要在数据变化时执行异步或复杂的操作时,侦听器就派上用场了。在Pinia中,我们可以使用Vue的`watch`函数来监听store中的状态变化。

2026-01-30 15:04:59 600

原创 聪明的人已经发现,26年的前端不对劲了!

39.is如何判空?「空」包含了:空数组、空对象、空字符串、0、undefined、null、空 map、空 set,都属于为空的数据【热度:640】你简历上的“性能优化”,有多少是 Lighthouse 分数驱动的指标游戏,有多少是真正解决过首屏渲染被第三方脚本阻塞的实际案例?面对“如何设计一个支持版本回滚的前端灰度发布系统”这样的问题,你的思考是从CDN、打包策略、还是从服务端流量切分开始?当你说“我熟悉Vite”,是真的理解其基于ESM的按需编译原理,还是仅停留在配置vite.config.js?

2026-01-29 17:09:18 860

原创 Vue 3中何时用watch,何时用watchEffect?核心区别及性能优化策略是什么?

watchEffect 是 Vue 3 中另一个强大的侦听器 API,它会自动收集回调函数中的依赖,并在依赖发生变化时重新执行回调。与 watch 不同,watchEffect 会在组件创建时立即执行一次,然后在依赖变化时再次执行。它默认是惰性的,只有当监听的源发生变化时才会触发回调函数。这个清理函数会在 watchEffect 重新执行前被调用,确保之前的异步操作被正确取消,避免不必要的资源消耗和潜在的错误。在组件卸载后,watch 或 watchEffect 仍然在执行,导致内存泄漏。

2026-01-29 15:30:38 820

原创 ✅Vue代码整洁:从硬编码到数据字典映射

/ 很多时候需要自定义字段,比如ui渲染为tag,每个状态对应不同的字体、背景颜色// 获取 status 的的颜色。

2026-01-29 15:11:40 300

原创 多去跑一些前端大厂面试,你就会发现

Webpack 的项目构建时间从 30 秒恶化到 3 分钟,你的排查思路是什么?”时,你会明白——他们关心的不是你“做过什么”,而是你“如何思考和解决未知问题”。依赖追踪机制上有什么根本不同”时,会突然醒悟——“会用”和“懂原理”之间,隔着很深的一道沟。你反复演练的“项目介绍”,在面试官听来可能只是功能罗列。React 的各种 API,却卡在“React 的 useEffect 与 Vue 的 watch 在。实时数据更新方案”,考的不是你会用哪个图表库,而是你如何平衡“实时性”、“性能开销”、“

2026-01-28 12:21:40 1053

原创 我接手了一个 10 年前的 jQuery 老项目,用 Web Components 给它续了命

/* 这里的样式绝对安全,不会影响外部,也不受外部影响 */:host {/* 我们可以用现代字体 */🤖 AI 助手

2026-01-28 12:01:59 699

原创 为什么现代 JavaScript 代码规范开始建议禁止使用 else ?

减少 else 使用” 的规范,本质是引导我们从 “能用” 的代码,走向 “好用、好读、好维护” 的代码。它挑战了传统编码习惯,迫使我们采用更线性、更扁平化的思维方式 —— 最终写出逻辑更清晰、可维护性更强的 JavaScript 代码。

2026-01-28 11:38:06 913

原创 面试通过!年底前端工程师,面试真的很水

有个明显的感觉:这个时间点,公司招人的目标很直接,就是找个能快速上手、把活儿干稳当的人。面试官没怎么深挖复杂原理,项目介绍也是让我挑最熟悉的讲,大多时间都在聊些非常“务实”的问题,比如“这个功能遇到兼容性问题你怎么解决”、“平时怎么保证代码质量”这些。下面是我准备这次和近期其他面试中的一些“接地气”的题目,你可以看看,如果这些都能答得扎实,年底拿个offer的概率真的不小。说说你是如何提高组件的渲染效率的?说说Node文件查找的优先级以及 Require方法的文件查找策略?HTTPS是如何保证安全的?

2026-01-28 11:25:56 1156

原创 刚参加完海康威视前端面试:一面+二面+三面,我的复盘经验总结!

为了准备这次面试刷了很多面试题,并且做了一个整理,分了HTML、CSS、JavaScript、React、Vue、浏览器、服务端与网络、算法等等.....可以说这次能拿下offer全靠它!

2026-01-26 18:04:28 967

原创 Vue 3.0笔记——Data Property和方法

data()是组件选项之一,必须是一个返回纯对象的函数。该对象的所有顶层属性会被 Vue 的响应式系统转换为“响应式属性”,即当这些属性的值发生变化时,依赖它们的视图会自动更新。函数形式:必须为函数(而非对象),确保每个组件实例拥有独立的数据副本(避免多实例共享同一对象导致状态污染)。返回对象:函数返回一个普通 JavaScript 对象,对象的属性即为组件的初始状态。

2026-01-26 17:52:17 544

原创 给26年面试web前端岗的人一些小小的震撼..

现在不再有人问你虚拟DOM原理——他们默认你已经能徒手实现一个支持时间旅行调试的虚拟DOM系统。接下来,我将拆解2026年面试的项目场景题——每一题都足以筛掉70%的“资深前端”。“假设React、Vue、Svelte同时发布4.0版本,请你设计一套统一的抽象层方案,让同一套业务组件能在这三个框架间无缝迁移。“请手写一个支持Tree Shaking的模块打包器核心算法,要求可视化分析模块依赖图,并给出三种代码分割策略的对比矩阵。你现在精心准备的“八股文”,可能只占不到20%的评分权重。

2026-01-26 17:30:18 765

原创 [特殊字符] 在浏览器地址栏输入 URL 后,页面是怎么一步步显示出来的?

浏览器渲染的本质就是:白屏问题页面卡顿动画掉帧script / link 阻塞回流 & 重绘优化都会变得非常清晰。

2026-01-26 17:06:22 859

原创 前端开发现状,真的不想再招前端了

准备项目介绍的时候,多突出性能优化的成果,比如Lighthouse评分提升了多少、Web Vitals关键指标如何改善、用了什么缓存策略。对Webpack/Vite的构建原理、Babel的AST转换、ESLint的规则定制,还有Docker+Nginx的部署配置、GitLab CI/CD的流水线设计,都没什么经验。不同状态管理方案的选型依据是什么?用React/Vue写业务组件溜得很,但要问React Hooks的实现原理与依赖收集、Vue的响应式系统、虚拟DOM Diff算法,就支支吾吾答不上来了😶。

2026-01-23 19:11:49 851

原创 React 组件通信:父子、兄弟与跨组件通信方案

React 组件通信的核心原则是「按需选择方案」:简单关系用简单方案,复杂关系用全局方案。父子通信:props 传数据,回调传反馈,最基础也最常用;兄弟通信:借父组件当桥梁,两步转发完成通信;跨组件通信:中小型项目用 Context,大型项目用 Redux Toolkit,避免 props 透传。实际开发中,先明确组件关系和业务需求,再选择对应的方案,既能保证代码简洁,又能提升维护效率。

2026-01-23 18:55:23 977

原创 vite.config.js 8 大核心模块,一文吃透

vite.config.js 作为 Vite 项目的核心配置文件,涵盖了环境配置、打包输出、插件扩展、本地开发等多个模块,一份完善的配置能够让前端工程化流程更规范、更高效。Vite 凭借“开发环境按需编译、生产环境 Rollup 打包”的差异化策略,既解决了传统打包工具的性能瓶颈,又满足了生产环境的部署要求,是现代前端开发的优质选择。掌握 vite.config.js 的配置逻辑,能够充分发挥 Vite 的核心优势,助力项目高效开发与部署。

2026-01-23 18:33:08 693

原创 前端开发年底面试重点,面试就像抄答案!

年底是前端岗位流动的高峰期,也是面试竞争最激烈的阶段。经过对上百家互联网公司近期前端面试真题的梳理,我们发现。

2026-01-22 18:53:46 1106

原创 都2026年,React源码还值不值得读 ❓❓❓

随着前端技术生态的不断演进,React 作为目前最流行的前端框架之一,已经走过了十多个年头。在 2026 年这个时间节点,很多开发者都在思考一个问题:React 源码还值不值得深入阅读?这个问题的答案并不是简单的"是"或"否",而需要从多个维度进行分析。本文将从实际价值、学习成本、技术趋势等角度,为你提供一个全面的分析。

2026-01-22 18:44:26 944

原创 2026 年,值得前端全栈尝试的 NestJS 技术栈组合

如果只是想把接口“跑起来”,也许只要NestJS加上一两个库就够用;NestJSTypeScript打基础,Fastify提供高性能 HTTP 入口,PrismaMySql管数据,RedisBullMQ管缓存和队列,管搜索,MinIO管文件,再加上PrometheusTerminus和OpenAILangChain这些周边,让项目从“能跑”变成“好用、可维护、可扩展”。对前端转全栈来说,这套组合有两个现实的好处:一是语法和思路都围绕TypeScript展开,上手成本可控;

2026-01-22 18:33:10 715

原创 干了五年前端,说下一次过面试的感受!

我那时对自己挺狠,每天雷打不动10道LeetCode,5道简单5道中等,逼自己90分钟内必须全AC。练的就是两个:看题要准,写码要稳。边界条件与异常处理必须一次过,尤其是涉及数组、字符串和树类的前端高频题型。每天至少深挖1-2个核心机制,比如EventLoop、闭包、原型链、Vue响应式原理或React Hooks的实现逻辑,做到看到代码能反应出执行顺序和状态变化。模块化、依赖管理、性能优化的思维已经决定了日常怎么写才稳健。

2026-01-21 18:29:59 1015

原创 我整理了一份 Vue 性能优化指南(给AI用的)

AI 审查代码的时候,如果发现性能问题(比如请求瀑布流、过度响应式),会参考这些规则给出优化建议。后来想着,干脆整理一份文档,自己查方便,也能给 AI 编码助手看(我现在用 Claude Code。浏览器会跳过屏幕外的渲染,初始加载快了 5-10 倍,滚动也流畅多了。首屏加载了 300KB 的 JavaScript,结果去优化循环少跑几次。,上千条商品数据,每个字段都变成响应式。整理完发现,好像也可以分享出来,说不定有人也遇到过这些问题。商品少的时候看不出来,数据一多性能差距就很明显了。

2026-01-21 18:21:57 901

原创 面试官 : “ 请你说一下 call、apply、bind 的区别 ? ”

call , apply , bind 他们三个的第一个参数是要绑定给函数的。但在传参方式和执行时机上有明显不同。,他们三个的第一个参数是要绑定给函数的。这三个方法的作用都是。这三个方法的作用都是。

2026-01-21 18:09:49 182

原创 实话很难听,但是这是前端开发面试现状

如果你正在准备前端面试,请先忘记你过去两年实际工作中用到的技术栈。现在的面试,本质上是一场在算法、底层原理和项目包装三项全能竞技。残酷的现实是:面试官的考察维度,与你日常工作中的“价值创造区”重合度可能不足 50%。大量在业务中至关重要的沟通协作、业务理解、交付能力、技术选型判断,在那一小时的面试里很难被充分检验。取而代之的,是一场高度内卷的、标准化的“解题能力”筛选。

2026-01-20 19:10:09 1205

原创 React 性能优化:memo、useMemo 与 useCallback 用法

memo:优化函数组件重复渲染,浅比较 props,仅当 props 变化时才渲染。useCallback:缓存函数引用,配合 memo 避免子组件因函数 props 引用变化而重复渲染。useMemo:缓存复杂计算结果,仅当依赖变化时才重新计算,提升渲染效率。避坑关键:不过度优化、不遗漏依赖、区分使用场景、不执行副作用。核心原则:性能优化以「解决实际问题」为前提,优先保证代码可读性,再进行针对性优化。

2026-01-20 19:07:19 496

原创 还在无脑 .map().filter()?实测改用 Iterator Helpers 后,内存占用降低了 99%

Iterator Helpers 不是要替代数组,而是给了我们另一个选择。如果你不需要整个数组,就别创建它。filter/map + take(N) 链式调用:时间和空间开销都能降低 90%+,这是 Iterator Helpers 的杀手级场景单纯的 find 查找本身就是惰性的,用反而更慢(慢 30%-70%)数据规模越大,Iterator Helpers 在链式调用场景的优势越明显内存优势尤其突出。

2026-01-20 18:43:05 1052

原创 今天面试了个前端女生,连点单登录都搞不清

是否有工程化思维、能否解决实际业务问题、懂性能优化与用户体验、是否持续学习反思。一、JavaScript面试题什么是防抖和节流?有什么区别?如何实现?如何判断一个元素是否在可视区域中?什么是单点登录?如何实现?如何实现上拉加载,下拉刷新?说说你对正则表达式的理解?应用场景?说说你对函数式编程的理解?优缺点?web常见的攻击方式有哪些?如何防御?说说JavaScript中内存泄漏的几种情况?Javascript如何实现继承?

2026-01-19 18:49:16 1475

原创 unibest:基于 Vite + Vue 3 的 Uni-app 开发终极方案

个人使用体验还是蛮不错的,支持 vscode 作为编辑器,基础的封装(比如 uni.request)都有,引入了实用的插件(比如 z-paging),自动化开发(约定式路由,自动引入组件、自动引入 api),使用 wot-ui 组件库、原子化样式等等,比原来使用 uniapp 开发起来效率和效果确实要好.然而,传统的开发模式(依赖 HBuilderX、基于 Webpack 的构建速度、繁琐的样式写法)在面对日益复杂的大型项目时,逐渐显露出工程化能力的短板。,让你可以在模板中直接书写原子类,所见即所得。

2026-01-19 18:41:59 833

原创 Zustand + TypeScript:前端“中央银行”是如何炼成的?

必须写 action、reducer、storemiddleware 配置像填税务申报表TypeScript 支持虽好,但类型推导常让人头秃而Zustand呢?它更像一个“极简主义央行”:✅ 基于Hooks,天然拥抱 React 函数式思维✅ 一行代码创建 store,无需样板代码✅ 内置 TypeScript 支持,类型推导丝滑如德芙✅ 自带persist 中间件,状态持久化只需两行✅ 轻量(< 1KB gzipped),性能优异“Zustand” 在德语中意为 “

2026-01-19 18:35:37 841

原创 一天面了6个前端开发,水平真的令人堪忧啊

这不是对候选人的指责——他们的技术轨迹恰恰反映了当前市场的培养倾向:追逐工具链更新速度,却轻视底层原理的沉淀;关注实现功能的速度,却忽略工程决策的长期成本。

2026-01-16 18:31:38 446

原创 深入理解MessageChannel:JS双向通信的高效解决方案

是浏览器提供的原生API,用于在两个独立的JavaScript执行环境之间建立专属的双向通信通道。每个通道包含两个互相关联的端口(port1和port2),形成一个完整的通信闭环。✅ Web Worker与主线程的高频数据交换✅ 微前端架构中的模块通信✅ 复杂iframe应用的父子页面交互✅ 需要严格隔离的插件系统✅ 实时数据处理管道。

2026-01-16 18:11:12 637

原创 这 10 个 Vue3 性能优化技巧很实用,但很多项目都没用上

点我复制

2026-01-16 18:10:34 668

原创 堪称全网最详细的前端面试八股文,面试必备(附答案)

作为面试过近的技术负责人,我见过太多候选人带着漂亮的简历走进会议室——Vue/React全家桶倒背如流、项目经历写得满满当当、算法题刷了成百上千道。可当我开始问时,超过的候选人都会出现短暂的沉默。前端面试早已不是「背API就能过」的时代了。今天的面试官想看到的,是。这篇文章将彻底拆解前端面试中的,但不止于标准答案——我会带你还原每一个技术问题背后的,并附上能让面试官眼前一亮的。1.JavaScript面试题(323题)2.CSS面试题(61题)3.HTML面试题(57题)

2026-01-15 17:04:19 1231

原创 微信小程序处理Range分片视频播放问题:前端调试全记录

1. 网络层 → HEAD请求2. 协议层 → Range请求测试3. 数据层 → 二进制分析4. 编码层 → 特征码检查5. 环境层 → 对照测试前端调试的深度:从前端可以分析二进制数据、检查编码特征系统性排查:从网络到编码,逐层验证工具的重要性:合理使用开发者工具和控制台经验的价值:现在我知道,小程序视频问题首先怀疑编码格式最核心的收获:当一切看起来都正常但就是不行时,往深处挖一层,答案往往在细节中。

2026-01-15 16:34:11 306

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除