- 博客(217)
- 收藏
- 关注
原创 vue模板数组不要直接使用reverse方法
永远不要在 Vue 模板中直接调用修改原数组的方法(如 reverse()、sort()、push() 等),优先使用计算属性 + 浅拷贝 + 无副作用方法,既能保证响应式,又能避免原数据被意外修改。在 Vue 模板中可以直接调用数组的 reverse() 方法,但需要特别注意该方法的特性以及 Vue 响应式的相关规则,否则可能引发意外问题。修改原数组 push/pop/shift/unshift/reverse/sort/splice ❌ 不建议。四、扩展:Vue 中数组方法的分类。
2025-12-31 11:11:34
163
原创 TortoiseSVN安装,记得选择command line client tools
TortoiseSVN安装,记得选择command line client tools。
2025-10-29 10:42:25
173
原创 记录virtualbox虚拟机安装ubuntu时,左上角显示下划线黑屏问题
摘要:系统版本为22.04时出现显示异常问题,经排查发现是由于内存或硬盘空间不足导致。将内存容量提升至8GB后,系统显示恢复正常。该问题说明硬件配置不足会影响系统正常运行,适当增加内存资源可有效解决此类显示故障。(99字)
2025-10-19 16:36:39
89
原创 项目导入最新element plus组件
项目使用老的element plus版本,最新组件存在修复bug,功能更新优化,我希望能够使用最新的组件,可以使用源码引入的方式。
2025-10-11 09:28:00
139
原创 mysql启动超时
管理员打开CMD后允许net start MySQL57, 启动超时。MySQL 启动失败的具体原因通常记录在错误日志中。数据文件损坏:InnoDB 表空间异常。权限问题:MySQL 无法访问数据目录。端口冲突:3306 端口被占用。我的是端口被占用了。
2025-08-15 14:09:22
378
原创 provide 和 inject 最佳实践
Vue 的 provide 和 inject API 实现了跨层级组件通信,无需逐层传递 props。最佳实践包括:为注入值设置默认值;使用 Symbol 避免命名冲突;确保响应性(使用 ref/reactive);TypeScript 类型安全;避免滥用,优先使用 props/emit。注意事项:默认非响应式,主要用于高阶组件开发,可能增加组件耦合度。适用于深层嵌套组件通信场景,但会降低组件复用性。
2025-08-08 16:16:02
374
原创 el-input 动态获焦
设置自定义指令:由于el-input最外层不是input,需要查找input元素设置焦点。新增分组后,焦点设置到新增的分组上面。在需要获焦的元素添加:v-focus。
2025-07-22 18:26:06
393
原创 权限管理设计思路
角色(Role) ────┬──── 角色权限(RolePermission) ──── 权限(Permission)通过以上设计思路,可以构建一个灵活、安全且易于维护的企业级权限管理系统,满足不同规模企业的需求。框架选择:Spring Security、Shiro、Keycloak等。权限(Permission) ──── 资源(Resource)└──── 角色约束(RoleConstraint)最小权限原则:用户只拥有完成工作所必需的最小权限。前端展示控制与后端验证必须同时存在。
2025-06-12 18:19:32
472
原创 AbortController 取消请求
AbortController是JavaScript中的一个全局类,主要用于中止各种异步操作,包括网络请求、事件监听器、可写流和数据库事务等。通过提供一个AbortSignal对象,AbortController允许开发者在需要时自由地终止这些操作,避免不必要的开销或冗长的等待。
2025-04-29 20:59:33
850
原创 大文件上传Demo及要点
这套方案在实际应用中支持了GB级文件的上传,成功率从原来的60%提升到了99%以上,同时提供了良好的用户体验。"我们的大文件上传方案主要解决了传统单次上传大文件时的超时、中断和用户体验问题。
2025-04-24 18:10:29
826
原创 react、vue中的key有什么作用?
key的作用:key是虚拟DOM对象的标识,数据发生变化时,对比新旧虚拟DOM元素比较规则:当元素找到相同key的时: 如果内容不变,就地复用,如果内容变了,生成新的DOM元素替代原来的DOM当没找到相同key时:直接创建新的真实DOM替换原来的用index作为key可能会引发的问题: 性能下降,状态错乱1.若对数据进行: 逆序添加、逆序删除等破坏顺序操作:会产生没有必要的真实DOM更新 ==>界面效果没问题,但效率低2.如果结构中还包含输入类的DOM。
2025-04-23 14:41:15
377
原创 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
628
原创 js reduce累加器
reduce() 是 JavaScript 数组的一个高阶函数,用于将数组元素通过一个 reducer 函数累积计算为单个值。基本语法参数说明callback - 执行数组中每个值的函数,包含四个参数:accumulator (acc) - 累积器,累积回调的返回值currentValue (cur) - 数组中正在处理的当前元素currentIndex (idx) - 可选,数组中正在处理的当前元素的索引sourceArray (src) - 可选,调用 reduce() 的数组。
2025-04-18 15:00:51
576
原创 oauth2.0认证原理
OAuth2.0(开放授权)是最流行的认证授权机制,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用, 兼容http。
2025-04-09 17:43:06
1231
原创 win 笔记本休眠功能
休眠功能需要与内存大小相当的磁盘空间来保存休眠文件。powercfg /hibernate /type full 启用完整休眠文件。powercfg /hibernate on 打开休眠功能。打开window power shell (管理员)输入 powercfg /hibernate?
2025-03-20 11:28:35
281
原创 Top100(20-25)
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [输出:1示例 2:输入:grid = [输出:3解法一:深度优先(递归)思路:(1) 当遇到矩阵元素为1(岛屿)时,先置于、为0(2) 然后查看与它相邻的上下左右方向,如果这四个方向相邻元素为1,则进入该元素。
2024-12-04 14:40:57
1025
原创 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
1070
原创 slice,splice,split区别和作用
参数start是截取的开始数组索引,end参数等于你要取的最后一个字符的位置值加上1(可选)。包含了源函数从start到 end 所指定的元素,但是不包括end元素,比如a.slice(0,3);如果出现负数就把负数与长度相加后再划分。slice中的负数的绝对值若大于数组长度就会显示所有数组若参数只有一个,并且参数大于length,则为空。如果结束位置小于起始位置,则返回空数组返回的个数是end-start的个数不会改变原数组。
2024-11-26 15:57:41
399
原创 JS Array.from的用法
1. 将类数组对象转换为数组:类数组对象通常指拥有一个length属性和若干索引属性的对象,如函数的arguments对象、DOM操作返回的集合等。1. 类数组对象的转换:将类数组对象(如函数的arguments、DOM操作返回的集合等)转换为真正的数组,以便使用数组的方法。3. 将Set或Map对象转换为数组:Set和Map对象也可以被转换为数组,且转换后的数组会包含原始集合中的所有元素。3. 多维数组的深拷贝:可以递归地使用Array.from()来深拷贝多维数组。
2024-11-20 16:35:42
419
原创 goLang map
操作,所以 `切片、函数以及包含这些结构类型的具有引用语义的,不能作为映射的键,会造成编译错误。和slice类似,map更方便一些,不用借助类似append的函数,直接赋值即可。delete操作是安全的,如果元素不在map中,将返回value类型对应的零值。Go不提供set类型,但是map中key是不相同的,可以实现类似set功能。在函数间传递映射不会制造出该映射的一个副本,不是值传递,是引用传递。如果key不存在,第一个返回值为空,第二个返回值为false。喜欢你,始于初见,陷于陪伴,终于白首。
2024-09-09 16:05:56
676
原创 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
486
1
原创 git log 显示改名前的log记录
git log命令配合–follow选项。这将会显示文件名改变之前的历史记录,并将其合并到最终的输出中。有些文件名修改操作,直接使用git log命令,不能查到改名前的记录。
2024-08-06 17:33:48
254
原创 前端埋点数据收集和数据上报
学名叫时间追踪(Event Tracking), 主要针对用户行为或者业务过程进行捕获,处理和发送相关技术及实施过程.埋点是数据领域的一个专业术语,也是互联网领域的俗称,是互联网领域的俗称埋点是产品数据分析的基础,一般用于推荐系统的反馈、用户行为的监控和分析、新功能或者运营活动效果的统计分析等。埋点包含两个重要概念:事件(event),属性(param)事件(event):应用中发生了什么,例如用户操作、系统事件或系统错误。
2024-07-10 15:06:44
2482
原创 环形链表1-2 js 快慢指针
如果有环,快慢指针相遇时,将快指针指向head,然后每次走一步。如果存在环,两个指针进入环中,是一个追及问题,一定会相遇。当快慢指针再次相遇时,返回这个ListNode。慢指针一次走一步,快指针一次走两步,在环形链表1的基础上,先判断是否有环。
2024-07-10 10:42:29
322
原创 python 列表求交集
这些实现方法都能够取得数组的交集,其返回结果为包含交集元素的新数组。实现方法3:使用filter()函数和lambda表达式。实现方法1:使用内置函数set()和&操作符。实现方法2:使用列表推导式和in操作符。
2024-05-15 10:41:43
702
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅