- 博客(221)
- 收藏
- 关注
原创 vite创建插件
Vite插件开发的核心就是定义钩子函数并在其中实现你的逻辑。通过官方文档的插件API可以查阅所有钩子的详细说明。先从简单的transformIndexHtml或config钩子入手,会更容易建立直观感受。如果你想将插件发布到npm供他人使用,记得遵循命名规范,例如包名以vite-plugin-开头。
2026-03-12 10:09:13
148
原创 设置了 { passive: true } 的监听事件中调用 e.preventDefault() 会导致控制台警告,并且无法阻止默认行为。
{ passive: true } // 表示:告诉浏览器,我不会调用 preventDefault(){ passive: false } // 表示:我可能会调用 preventDefault()e.preventDefault();
2026-02-27 10:51:11
614
原创 HTTP状态码别乱改
简单直接的回答:可以,但不建议轻易使用。行业共识:两种更优雅的做法绝大多数互联网大厂(Google、Meta、阿里、腾讯)在面对“需要更多状态码”的需求时,普遍采用以下两种方案:方案一:标准状态码 + 业务Code(推荐)这是最规范、最主流的做法。HTTP状态码: 只使用标准的那几个(200, 400, 401, 403, 500)。业务状态码: 在响应体(Body)中自定义一个字段,携带详细的业务错误信息。示例:用户余额不足http。
2026-02-26 10:31:29
841
原创 vite 修改base之后需要修改public路径
访问 http://localhost:5173/libs/tinymce/5.7.0/jquery.tinymce.min.js。最近项目从vite2升级到vite7。说明需要在代码上加上。
2026-02-10 10:28:27
177
原创 vue模板数组不要直接使用reverse方法
永远不要在 Vue 模板中直接调用修改原数组的方法(如 reverse()、sort()、push() 等),优先使用计算属性 + 浅拷贝 + 无副作用方法,既能保证响应式,又能避免原数据被意外修改。在 Vue 模板中可以直接调用数组的 reverse() 方法,但需要特别注意该方法的特性以及 Vue 响应式的相关规则,否则可能引发意外问题。修改原数组 push/pop/shift/unshift/reverse/sort/splice ❌ 不建议。四、扩展:Vue 中数组方法的分类。
2025-12-31 11:11:34
193
原创 TortoiseSVN安装,记得选择command line client tools
TortoiseSVN安装,记得选择command line client tools。
2025-10-29 10:42:25
239
原创 记录virtualbox虚拟机安装ubuntu时,左上角显示下划线黑屏问题
摘要:系统版本为22.04时出现显示异常问题,经排查发现是由于内存或硬盘空间不足导致。将内存容量提升至8GB后,系统显示恢复正常。该问题说明硬件配置不足会影响系统正常运行,适当增加内存资源可有效解决此类显示故障。(99字)
2025-10-19 16:36:39
101
原创 项目导入最新element plus组件
项目使用老的element plus版本,最新组件存在修复bug,功能更新优化,我希望能够使用最新的组件,可以使用源码引入的方式。
2025-10-11 09:28:00
166
原创 mysql启动超时
管理员打开CMD后允许net start MySQL57, 启动超时。MySQL 启动失败的具体原因通常记录在错误日志中。数据文件损坏:InnoDB 表空间异常。权限问题:MySQL 无法访问数据目录。端口冲突:3306 端口被占用。我的是端口被占用了。
2025-08-15 14:09:22
394
原创 provide 和 inject 最佳实践
Vue 的 provide 和 inject API 实现了跨层级组件通信,无需逐层传递 props。最佳实践包括:为注入值设置默认值;使用 Symbol 避免命名冲突;确保响应性(使用 ref/reactive);TypeScript 类型安全;避免滥用,优先使用 props/emit。注意事项:默认非响应式,主要用于高阶组件开发,可能增加组件耦合度。适用于深层嵌套组件通信场景,但会降低组件复用性。
2025-08-08 16:16:02
393
原创 el-input 动态获焦
设置自定义指令:由于el-input最外层不是input,需要查找input元素设置焦点。新增分组后,焦点设置到新增的分组上面。在需要获焦的元素添加:v-focus。
2025-07-22 18:26:06
411
原创 权限管理设计思路
角色(Role) ────┬──── 角色权限(RolePermission) ──── 权限(Permission)通过以上设计思路,可以构建一个灵活、安全且易于维护的企业级权限管理系统,满足不同规模企业的需求。框架选择:Spring Security、Shiro、Keycloak等。权限(Permission) ──── 资源(Resource)└──── 角色约束(RoleConstraint)最小权限原则:用户只拥有完成工作所必需的最小权限。前端展示控制与后端验证必须同时存在。
2025-06-12 18:19:32
530
原创 AbortController 取消请求
AbortController是JavaScript中的一个全局类,主要用于中止各种异步操作,包括网络请求、事件监听器、可写流和数据库事务等。通过提供一个AbortSignal对象,AbortController允许开发者在需要时自由地终止这些操作,避免不必要的开销或冗长的等待。
2025-04-29 20:59:33
912
原创 大文件上传Demo及要点
这套方案在实际应用中支持了GB级文件的上传,成功率从原来的60%提升到了99%以上,同时提供了良好的用户体验。"我们的大文件上传方案主要解决了传统单次上传大文件时的超时、中断和用户体验问题。
2025-04-24 18:10:29
857
原创 react、vue中的key有什么作用?
key的作用:key是虚拟DOM对象的标识,数据发生变化时,对比新旧虚拟DOM元素比较规则:当元素找到相同key的时: 如果内容不变,就地复用,如果内容变了,生成新的DOM元素替代原来的DOM当没找到相同key时:直接创建新的真实DOM替换原来的用index作为key可能会引发的问题: 性能下降,状态错乱1.若对数据进行: 逆序添加、逆序删除等破坏顺序操作:会产生没有必要的真实DOM更新 ==>界面效果没问题,但效率低2.如果结构中还包含输入类的DOM。
2025-04-23 14:41:15
394
原创 Top100(26-30)
输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]如果不存在符合条件的子数组,返回 0。
2025-04-18 17:41:28
641
原创 js reduce累加器
reduce() 是 JavaScript 数组的一个高阶函数,用于将数组元素通过一个 reducer 函数累积计算为单个值。基本语法参数说明callback - 执行数组中每个值的函数,包含四个参数:accumulator (acc) - 累积器,累积回调的返回值currentValue (cur) - 数组中正在处理的当前元素currentIndex (idx) - 可选,数组中正在处理的当前元素的索引sourceArray (src) - 可选,调用 reduce() 的数组。
2025-04-18 15:00:51
601
原创 oauth2.0认证原理
OAuth2.0(开放授权)是最流行的认证授权机制,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用, 兼容http。
2025-04-09 17:43:06
1257
原创 win 笔记本休眠功能
休眠功能需要与内存大小相当的磁盘空间来保存休眠文件。powercfg /hibernate /type full 启用完整休眠文件。powercfg /hibernate on 打开休眠功能。打开window power shell (管理员)输入 powercfg /hibernate?
2025-03-20 11:28:35
352
原创 Top100(20-25)
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [输出:1示例 2:输入:grid = [输出:3解法一:深度优先(递归)思路:(1) 当遇到矩阵元素为1(岛屿)时,先置于、为0(2) 然后查看与它相邻的上下左右方向,如果这四个方向相邻元素为1,则进入该元素。
2024-12-04 14:40:57
1038
原创 top100 (11-20)
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。答:因为初始化 right 的赋值是 nums.length - 1,即最后一个元素的索引,而不是 nums.length。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
2024-11-28 16:55:36
1081
原创 slice,splice,split区别和作用
参数start是截取的开始数组索引,end参数等于你要取的最后一个字符的位置值加上1(可选)。包含了源函数从start到 end 所指定的元素,但是不包括end元素,比如a.slice(0,3);如果出现负数就把负数与长度相加后再划分。slice中的负数的绝对值若大于数组长度就会显示所有数组若参数只有一个,并且参数大于length,则为空。如果结束位置小于起始位置,则返回空数组返回的个数是end-start的个数不会改变原数组。
2024-11-26 15:57:41
419
原创 JS Array.from的用法
1. 将类数组对象转换为数组:类数组对象通常指拥有一个length属性和若干索引属性的对象,如函数的arguments对象、DOM操作返回的集合等。1. 类数组对象的转换:将类数组对象(如函数的arguments、DOM操作返回的集合等)转换为真正的数组,以便使用数组的方法。3. 将Set或Map对象转换为数组:Set和Map对象也可以被转换为数组,且转换后的数组会包含原始集合中的所有元素。3. 多维数组的深拷贝:可以递归地使用Array.from()来深拷贝多维数组。
2024-11-20 16:35:42
437
原创 goLang map
操作,所以 `切片、函数以及包含这些结构类型的具有引用语义的,不能作为映射的键,会造成编译错误。和slice类似,map更方便一些,不用借助类似append的函数,直接赋值即可。delete操作是安全的,如果元素不在map中,将返回value类型对应的零值。Go不提供set类型,但是map中key是不相同的,可以实现类似set功能。在函数间传递映射不会制造出该映射的一个副本,不是值传递,是引用传递。如果key不存在,第一个返回值为空,第二个返回值为false。喜欢你,始于初见,陷于陪伴,终于白首。
2024-09-09 16:05:56
687
原创 git status 测试题
不过,需要注意的是,git status命令的输出格式可能因Git版本或配置的不同而略有差异,但以下是一个通用的方法,它应该能在大多数环境中工作。一个更健壮的方法是使用git diff --name-only --diff-filter=M来直接获取modified文件的列表,然后传递给zip命令。请在"git status ./"命令后面通过管道加上2-3个命令组成一行组合命令,把所有modified状态的文件打包至zip压缩包(提示:使用grep、awk、zip命令)
2024-08-12 17:09:21
503
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅