自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我用 CSS 3D 做了个星空隧道 Loading,没有 Three.js

做 Loading 最容易翻车的两种姿势:有没有第三条路?有——浏览器原生的 CSS 3D Transform + 一点可控随机。核心就一句话:经典屏保「星空隧道 / Warp Speed」本质上就是这个把戏。我们只不过把星星换成了会说话(还会抬杠)的关键词。本文会从零拆到能抄:给容器写上:浏览器会假装你面前有一台相机。同样大小的物体,越远越小,越靠近画面中心。这个中心点就叫灭点(vanishing point)。你不需要自己算投影矩阵。只要把元素用 丢进 3D 空间,屏幕上的位置和大小会「长」出来。很

2026-09-13 15:34:39 141

原创 vxe 固定列往下滚就「跑偏」?其实不是行高的问题

这类问题的坑在于:肉眼觉得是「行偏了」,调试却发现「行其实很齐」。一旦把注意力从「某一行」转到「滚动容器总高度」,很多固定列错位会一下子变得好懂。如果你也在用 vxe-table 的固定列,遇到「往下滚操作列跑偏」,不妨先在控制台比一下主表和固定列的——差出来的那几十、一百多像素,往往就是答案。

2026-08-27 15:00:06 341

原创 人走了,iframe 还在:OpenSDK 生命周期没对齐 Vue

最近接金山的 OpenSDK(大概 0.1.x),踩了个挺烦的坑:从带文档预览的详情页返回列表,页面看起来「不对劲」——像盖了层透明膜,严重时整页被嵌进一个 iframe 里,俗称页面套页面。一开始以为是路由或布局的问题,扒了一下 DOM,才发现是 SDK 在body上留了东西。这篇文章主要记排查过程,怎么从「藏起来」改成「主动拆掉」。

2026-08-25 09:38:22 205

原创 找工作总被已读不回?我做了个 Chrome 插件,让 HR 主动来找你聊

文章摘要: HireHelper是一款专为求职者设计的Chrome插件,解决招聘平台“打招呼话术”痛点。它能自动抓取职位信息,结合用户预设的个人能力档案(SKILL.md)和生成规则(RULES.md),通过AI或本地模板一键生成5-8条个性化开场白,突出核心优势。支持BOSS直聘、猎聘等主流平台,兼容DeepSeek/OpenAI等大模型,具备流式输出、智能降级、截图识别等功能。用户只需克隆GitHub项目、配置API和个人档案,即可快速安装使用,显著提升HR回复率。 核心价值: 效率提升:1秒生成高质量

2026-06-22 16:27:48 484

原创 产品经理:不管点几次,B 窗口只能有一个!我的单例模式实战录

本文介绍了如何实现浏览器窗口单例管理的技术方案。从最初简单的window.open方法开始,逐步解决了跨浏览器兼容性、静默模式限制等问题。通过单例模式在单个标签页内维护窗口引用,实现了窗口复用和状态管理。针对跨标签页需求,进一步引入SharedWorker作为中央调度器,协调多个标签页共享同一窗口实例。文章详细展示了核心代码实现,包括窗口状态检测、消息通信机制等,提供了一套完整的跨标签页单例窗口解决方案,有效提升了用户体验和系统一致性。

2026-06-22 16:09:40 201

原创 前端开发助手

最近 AI 写代码的能力越来越强,Cursor、Claude Code 这些工具大家应该都在用了。但用了一段时间我发现一个问题:单次对话能写代码,但一个需求从提出来到做完,中间要过需求分析、写代码、测试、review 这些环节,靠一个 Agent硬撑很难保证质量。所以我搞了一个多角色的智能体系统,不同角色干不同的事,串成一条完整的流程。

2026-05-27 11:47:11 458

原创 我把 Cursor 调教成「全能搭子」后,开发效率直接翻倍:Skills + MCP 小白避坑指南

摘要 本文分享了如何通过合理配置 Skills(方法)和 MCP(工具能力)将 AI 助手从"问答工具"升级为"开发搭档"的经验。作者指出 AI 落地效果差往往不是模型问题,而是缺乏稳定的工作方法和执行能力。文章提供了20个高频Skills分类清单和5个核心MCP工具,建议从最小可用组合(3个MCP+4个Skills)开始,并定期做"能力体检"。同时提醒避免配置过多、不验证、权限过大等常见误区。通过Skills固定方法,MCP接入执行能力,可显著提

2026-03-27 15:11:55 1307

原创 个人精选 MCP 清单

本文介绍了在 Cursor 中配置和使用多种 MCP(Model Context Protocol)的指南。主要内容包括:1)环境准备(Node.js 18+、Python 3.10+);2)5个常用MCP的功能说明、触发条件和安装方法(neural-memory、playwright、filesystem、sequential-thinking、web_reader);3)统一安装流程和配置示例;4)验证与排障建议;5)安全维护提示。文章还提供了详细的JSON配置示例,并强调最小权限原则和安全注意事项。F

2026-03-27 15:04:02 528

原创 个人精选 Skills 清单

本文介绍了AI+Cursor的技能管理方法,包含安装、更新和查看命令,并分类整理了常用技能。基础技能如技术文档编写和API文档生成;前端相关包括React最佳实践和组件设计;测试排障类如系统化调试和TDD流程;架构规划类如决策记录和方案设计。所有技能需全局安装并重启Cursor生效,每个技能都标注了功能、触发条件和安装指令。

2026-03-27 14:58:18 982

原创 Figma 配置

本文介绍了如何配置Figma与Cursor的集成方案。主要内容包括:1)下载安装Figma软件;2)安装Bun运行时环境;3)克隆cursor-talk-to-figma-mcp插件项目并启动WebSocket服务;4)在Figma中导入插件manifest文件;5)配置Cursor的MCP连接;6)测试连接;7)添加Skills和Rules规范代码实现;8)配置Figma官方Plugins;9)使用注意事项。该方案可实现Cursor与Figma的双向交互,支持从设计稿生成代码样式,同时提供安全控制防止误操

2026-03-24 15:39:52 622

原创 React 表单提交关键词意外触发刷新

文章摘要:开发过程中遇到表单提交时页面刷新的问题,发现是表单字段"nodeName"与DOM原生属性冲突导致的。当React调用elem.nodeName.toLowerCase()时,由于表单实例上的nodeName被覆盖而报错。解决方案有两个:1)为Form组件添加name属性避免字段冲突;2)将表单字段改为非原生名称并在提交时映射。该案例提醒开发者需注意避免表单字段与DOM原生属性重名的问题。

2026-03-23 16:38:40 79

原创 Cursor Prettier 未激活问题

今天是使用 Cursor 发现Prettier 格式化提示需要配置规则,后查看 Prettier 插件显示未激活。目前的解决办法是进行降级处理,在插件列表,点击设置按钮 -> 安装特定版本 -> 重启编辑器。但是 Vscode 和 Trae 是没有影响,查看更新日志是最近有一个大版本更新 12。

2026-01-21 14:08:00 156

原创 Antd Modal Drawer 更改默认项

当项目比较大使用了非常多的 Modal 和 Drawer 要是有需求一次性全部调整就会比较麻烦,目前 Antd 的 ConfigProvider 暂不支持(也有可能我没找到,待大佬指证)就比如由于默认 Modal Drawer 的遮罩层是可以点击关闭的,但是业务需要,要求全部不可点击,这时候一个一个去加就很麻烦,还容易遗漏。新建 patch 的文件夹(名字随意)为了方便扩展,结构根据自己需要调整。在 main.tsx 引入。

2025-04-25 14:00:40 418

原创 链式触发器

前端接口链式触发器

2025-04-10 14:26:34 169

原创 框架级设计接口的防抖

工作中出现了按钮连点导致数据库数据异常的问题,虽然都加了 loading 但是打开 loading 还是有很短的间隔时间,导致触发了第二次的接口调用,所以设计了一个针对项目所有接口的防抖。只有通过、报错、超时才清除,这样再次点击只要上次的结果还没收到,就不允许请求。1、考虑不够严谨,接口报错走 error 的时候获取不到 url(需要改动项目封装的 Axios 没敢乱动)我就直接清空了缓存。2、并发接口不需要走这个逻辑,所以还要单独开辟空间,排除一些不需要这个的接口地址。Pinia 全局状态管理缓存。

2025-02-19 15:29:30 338

原创 自定义指令

解决控制台报错# 报错:Blocked aria-hidden on a <input> element because the element that just...这个bug是最近才出现的,之前自己也这样写也没有问题,网上说是chrome浏览器升级出现的问题。

2025-02-19 10:46:20 879

原创 Element UI Collapse 折叠面板和表格结合高度闪动问题

Element UI Collapse 折叠面板和表格结合高度闪动问题

2024-11-24 21:01:43 855 3

原创 全局 loading

做项目中一直想用一个统一的 loading 状态控制全部的接口加载,但是一直不知道怎么处理,最近脑子突然灵光了一下想到了一个办法。估计大佬也看出来了,虽然是个方法,但是很不严谨。因为简单的计数法,会有出现负数的情况,甚至两个接口同时响应的情况(当然这种很极端)然后因为页面会有很多接口会同时触发接口调用,但是接口响应时间是不一定的,所以采用计数法处理,代码如下。我询问了后端大佬,给我提供了一种互斥锁的概念可以融入其中,所以出现了现在的最好版本。今天就这样,又是小白学习的一天,加油!

2024-07-17 10:52:52 651

原创 Vite + Vue3 部署 GitHub

因为在 yml 文件中是监控 push 事件,所以会自定发布。新建文件夹 .github 然后再建一个文件夹 workflows。因为静态资源是可以部署到 GitHub 上,自己顺便学习部署网站。在 Actions 里可以查看进度,成功以后就会生成一个地址。因为我使用的是 Vite 工具,官方有提供相应 Demo。打开项目 GitHub 地址,点击 Settings。记录自己的第一个 GitHub 部署项目。新建文件 main.yml 文件。直接使用官方文档 demo。

2024-05-22 13:44:14 864

原创 前端发版缓存问题

前端发版缓存问题

2024-04-26 10:29:02 1398

原创 Vue 文件流下载和(PDF)预览

然后我就兴奋的去开发了,然后问题就出来了,因为指定 responseType 所以拿到的后端数据通过 axios 之后全部变成了 Blob 对象,然后我就找不到了我的状态码了 T_T。解决办法很奇葩,用到了 FileReader 对象解决,只要解析 Blob 数据能成功,就取出 code 码提示,一旦报错,就是文件流了,哈哈哈哈哈哈。前端下载文件流的方法很简单,axios 的请求方式请求头增加 responseType 为 blob 响应体转成 Blob 对象。我最近需求是后端成功会返回文件流。

2024-04-16 14:19:07 832

原创 Vue 样式穿透

Vue 样式穿透

2024-04-16 13:55:27 371

原创 Vite + Vue3 开发

项目里引入了全局监听报错机制 onErrorCaptured 但是如果一直报错,会出现内存泄漏的问题(只会在开发环境上出现,不确定是这个钩子导致的,但是复现也不太容易,总结太菜,待解决。封装二次表单的 Select 组件的数据循环 Children 需要循环才能写入(这个不符合我的初始设计想法,但是,目前也没有好的解决办法,待解决。这也算是开发一个企业级的项目(公司现在用了)当然还有一些细节,就不说了,有兴趣的可以去我的 GitHub 上看看。配置打包规则的时候,要留出文件后缀,不然会出现 404。

2024-04-08 16:49:34 635

原创 前端淘宝镜像域名替换记录

package-lock.json 文件,版本就会有变动,然后这时候写的代码是按照当前版本写的,后面我用 --force 重新下载,版本就很有可能对不上了,导致一些意外情况。至于为啥最近才记录这个问题,是因为项目才上生产环境,我又测试了一下,基本没问题了,目前还是有一个样式我很迷惑,估计后面又要找找原因和手动更改了。所以等我弄完,有人也建议我把 ^ 去掉,不过我担心出现更多问题,就放弃了,哪个插件有问题就 --force 一下,基本解决了大部分。文件删除,重新 install 一下,最后代码提交,发布。

2024-02-27 17:07:21 514

原创 模拟 Element ui 的 Dialog

最近发现了一个新标签,dialog 正好尝试一下模拟 Element 的 Dialog,代码见下。本来还想看看能不能直接全部 Css 处理,我还是太菜了,只能借助于 Js 实现了部分效果。所以特殊场景可以用自己写的 Dialog 来实现某些效果,今天就这样。这个 dialog 标签还是很强的。祝大家春节开心,天天快乐,拜拜!

2024-02-06 15:55:53 527

原创 2023 个人总结

基本上就是这些了,这么一看,很杂,什么都有涉及,最后又每一个都不好。希望以后一切顺顺利利,完善一下上面的插件,越做越好。首先,优快云 文章我写了13篇,都是关于前端的。npm 上首次发布自己写(其实是抄(借鉴)的)的 npm 包插件,图片预览工具。23年真是精彩的一年,我也给自己做个总结,这一年我都干啥了。尝试写了两个浏览器插件,自己使用,没考虑发布。买了一本大佬写的书(还没学完)哈哈哈哈哈哈哈。抽时间刷刷力扣,基本都是简单的。顺便上传至 github。顺便发布到 gitee。

2024-01-18 10:37:34 452

原创 快速复制 Cookies 插件开发

快速复制 Cookies 插件开发

2024-01-16 14:56:30 1050

原创 Element Plus 全局 Confirm 弹窗取消和意外关闭处理

Element Plus 全局 Confirm 弹窗取消和意外关闭处理

2023-12-18 15:16:54 2670 2

原创 Vue 获取子组件 data

Vue 获取子组件 data

2023-09-26 11:26:20 1762

原创 Random 使用

Random 使用。

2023-09-05 16:04:31 209 1

原创 El-Dialog 源码补丁

El-Dialog 源码补丁

2023-07-25 20:29:47 230

原创 Canvas 烟花点击特效

附上代码。

2023-06-03 21:37:00 367

原创 Canvas 鼠标跟随动画 Demo

附上代码。

2023-06-03 20:35:42 290

原创 手电筒小动画

我还想实现滚轮放大灯光效果,但是一直实现不了,在这里求助大佬给个建议,求个思路。原生实现一个手电筒小动画。

2023-05-21 19:14:36 170

原创 Vue2自定义指令全局使用多个

Vue2自定义指令全局使用多个

2023-05-18 16:18:33 540

原创 sort 方法根据参照另一个数组排序

sort 方法根据参照另一个数组排序

2023-05-05 13:35:48 368

原创 Reduce 的常用写法

【代码】Reduce 的常用写法。

2023-05-02 11:34:31 199

原创 数据转换问题

组长对我的审讯是对的,因为隐式转换是有风险的,当然这个我是一直不理解,直到我发现了这个。简单理解就是空数组走了隐时转换,通过了 toString() 方法,转成了空的字符串,然后在进行拼接操作,这也就是说,如果我们正常的工作中进行了隐时转换,还真不知道会发生什么。反正就当我以为会报错的时候,打印了一下,发现没报错,是我错了。然后这个就困扰了我很久的问题,我就研究源码,看了半天和源码没有半毛钱关系。日常工作中,经常遇到数据类型的转换,我常用的什么 *1 +0 -0 ==等等,后来组长看到我的代码,被弄了。

2023-04-26 18:05:23 114

原创 弹幕头像 canvas 实现

弹幕头像 canvas 实现

2023-04-13 14:34:44 161

原创 鼠标跟随特效

手写加百度鼠标跟随特效,原谅我的菜,T.T。

2023-02-06 17:09:04 290

空空如也

空空如也

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

TA关注的人

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