- 博客(7)
- 收藏
- 关注
原创 watch 监听 url 地址参数变化(路由变化)
摘要:本文介绍了Vue2和Vue3中监听URL参数变化的多种方法。Vue2(OptionsAPI)提供了四种方式:1)监听整个路由变化;2)精确监听单个query参数;3)监听所有params参数;4)使用路由守卫。Vue3(CompositionAPI)推荐使用useRoute()配合watch监听特定参数或整个路由对象。文章还给出了使用建议:优先监听具体参数而非整个路由,注意处理组件复用情况,及时清理监听器,以及处理异步请求的竞态问题。
2025-11-10 17:24:30
324
原创 JavaScript 事件循环机制(Event Loop)
JavaScript事件循环是单线程环境中处理异步任务的核心机制。它通过主线程执行同步任务,将异步任务分为宏任务(如setTimeout)和微任务(如Promise.then)。执行流程为:执行宏任务→清空微任务队列→取下一个宏任务循环。微任务总在下一个宏任务前执行,这解释了为何Promise回调先于setTimeout执行。浏览器和Node.js实现略有差异,Node中每个阶段后都会清空微任务。掌握"同步先执行,异步分两批;微任务优先宏任务"口诀,就能准确预判代码执行顺序。
2025-11-10 16:59:31
545
原创 JavaScript 深拷贝
JSON方法深拷贝存在性能问题,因为需要进行两次对象遍历和字符串转换,且不支持循环引用和特殊数据类型。推荐更优方案:1)浏览器原生structuredClone方法最快且支持多种类型;2)MessageChannel适用于异步场景;3)Lodash的cloneDeep兼容性好但性能稍逊;4)手写递归可针对简单数据结构优化。性能排序:structuredClone>优化递归>Lodash>JSON方法。建议优先使用原生structuredClone,老环境可用Lodash或定制递归方案。
2025-08-13 15:19:45
336
原创 object 判空处理
摘要:比较两种判断对象是否为空的性能差异。JSON.parse(JSON.stringify(obj))需要进行两次全量遍历(O(n)),消耗大量内存且无法处理循环引用;而Object.keys(obj).length只需遍历一层属性(O(m)),性能更好。测试表明,在大对象情况下前者可能慢几十倍。最优方案是使用for...in循环配合hasOwnProperty检查,发现属性立即返回,避免不必要的遍历。JSON方法更适合深拷贝而非判空操作。
2025-08-13 15:07:50
534
原创 vue3项目适配firefox浏览器,版本号91
报错:XML Parsing Error:no root element found。需要拖动该img元素触发报错,firefox对img标签解析失败。修改,将img标签用背景图来代替,避免报错。,导致 Firefox 91 解析失败。
2025-03-24 14:51:34
313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1