首页 文章 精选 留言 我的

文章列表

共 226424 篇
Vue 3 中 watch 与 watchEffect 的依赖收集差异导致页面重复请求的排查记录

Vue 3 中 watch 与 watchEffect 的依赖收集差异导致页面重复请求的排查记录

最近在维护一个后台管理页面时,遇到一个比较隐蔽的问题:列表页在筛选条件变化后,会连续发起两次相同的数据请求。第一次请求很快返回,但紧接着又发了一次,导致 loading 状态闪烁,偶尔还会因为响应顺序问题把旧数据覆盖到新数据上。排查后发现,问题出在 watch 和 watchEffect 的依赖收集机制差异上——watchEffect 会自动追踪回调里用到的...

Vue 3 中 reactive 对象解构后丢失响应式,为什么 ref 能解决?

Vue 3 中 reactive 对象解构后丢失响应式,为什么 ref 能解决?

在 Vue 3 项目里,从 reactive 对象上解构属性是很常见的写法,比如把 user.name 拆出来直接用在模板里。但很多人会踩到一个坑:解构之后的值不再随源对象变化而更新,视图就“卡”住了。这个问题通常出现在表单、配置面板、列表项编辑等场景,本质是 JavaScript 解构复制的是值,而不是引用,而 Vue 的响应式追踪依赖的是属性访问。ref...

Vue 3 的 watch 与 watchEffect:何时用哪个,以及如何避免重复触发

Vue 3 的 watch 与 watchEffect:何时用哪个,以及如何避免重复触发

在 Vue 3 的组合式 API 里,watch 和 watchEffect 是日常业务代码中出现频率很高的两个响应式副作用工具。很多人第一次接触时容易把它们当成同一种东西,结果在监听对象属性、异步请求、路由参数变化或者需要手动停止监听的场景里踩坑。最常见的困扰是:明明只改了一个字段,回调却执行了两次;或者 watch 一个 reactive 对象的某个属性...

为什么你的 Promise 在 Node.js 里成了内存泄漏的源头

为什么你的 Promise 在 Node.js 里成了内存泄漏的源头

在 Node.js 服务端开发中,我们常常会使用 Promise 来组织异步流程,尤其是在调用下游 HTTP 接口、查询数据库或者读写文件时。但很多开发者没有意识到,如果 Promise 被创建之后迟迟不 resolve 或 reject,并且外部又不断产生新的 Promise,这些挂起的 Promise 就会一直占据内存,最终拖垮整个进程。这类问题在线上表...

Vue 3 中 watch 和 watchEffect 的清理副作用到底该怎么写才不会内存泄漏

Vue 3 中 watch 和 watchEffect 的清理副作用到底该怎么写才不会内存泄漏

在 Vue 3 的 Composition API 里,watch 和 watchEffect 是处理响应式数据副作用的常用工具。当监听的数据变化时,经常需要发起异步请求、启动定时器或者注册事件监听。如果这些副作用没有在组件卸载或下一次触发前正确清理,很容易造成内存泄漏、竞态更新或者无效的 DOM 操作。很多开发者只在 onUnmounted 里做清理,却忽...

用 AbortController 管理异步请求:从取消防抖搜索到清理组件副作用

用 AbortController 管理异步请求:从取消防抖搜索到清理组件副作用

在后台管理列表页做防抖搜索时,用户快速输入会连续触发多个 fetch,后发的请求可能先返回,导致列表显示的是旧关键词的结果。另外,在 React 或 Vue 组件卸载后,未完成的请求如果还去 setState,会触发内存泄漏警告。解决这两个问题的常见手段是手动维护一个 requestId 或 loading 标志,但代码容易写乱,尤其多个请求并行时难以清理。...

JavaScript 中的事件循环与微任务:一次代码执行顺序的排查记录

JavaScript 中的事件循环与微任务:一次代码执行顺序的排查记录

前几天在项目里遇到一个奇怪的现象:一个按钮点击后,先更新了状态,然后通过 Promise 触发了一个日志上报,但日志里的数据却是旧的。排查后发现,问题出在微任务和事件循环的配合上。很多人对 setTimeout、Promise.then、queueMicrotask 的执行顺序停留在背诵面试题的层面,一旦放进真实代码里,尤其是和 DOM 更新、异步请求、状态...

React useEffect 依赖数组的坑:为什么你的清理函数总是慢半拍?

React useEffect 依赖数组的坑:为什么你的清理函数总是慢半拍?

在 React 函数组件里用 useEffect 处理副作用时,依赖数组的控制往往比想象中更容易出错。尤其是当副作用内部引用了外部变量或函数,却忘记将它们加入依赖数组,或者为了“只执行一次”而故意留空数组,导致闭包捕获了旧值,清理函数执行时机错乱,甚至出现内存泄漏和状态更新异常。这类问题在定时器、事件监听、数据订阅等场景中格外常见,因为清理函数需要访问最新的...

JavaScript 中的 AbortController:如何优雅地取消 fetch 与异步任务

JavaScript 中的 AbortController:如何优雅地取消 fetch 与异步任务

在开发中我们经常遇到这样的场景:用户快速切换页面,但之前的接口请求还在进行;搜索框连续输入时,每敲一个字符就发一次请求,旧请求的结果可能覆盖新结果;或者文件上传过程中用户点击了取消按钮。这些情况如果不做处理,轻则浪费带宽和服务器资源,重则导致界面状态混乱。过去我们常用一个布尔标记或 XMLHttpRequest 的 abort 方法来中断请求,但代码零散且难...

30 分钟搞定 338 个槽位:你的 Agent 为何还在“裸奔”?

30 分钟搞定 338 个槽位:你的 Agent 为何还在“裸奔”?

早上九点,你盯着屏幕上那 338 个散落的工具配置发呆。隔壁同事用框架三下五除二就把流程跑通了,你却在每个接口的入参上卡了半小时。同样是写代码,为什么他花的时间是你的几分之一?问题究竟出在哪,还是说,你从一开始就看错了“插槽”的位置? 这事儿其实不复杂,只是很多人被“手写自由”迷惑了。 自定义标识只是命名规范,它是在 Agent 身上预留的插槽。这话说得...

电子签名与数字证书法律效力的技术保障:从签名格式与可信时间戳到长期有效性验证的工程实现

电子签名与数字证书法律效力的技术保障:从签名格式与可信时间戳到长期有效性验证的工程实现

电子签名与数字证书法律效力的技术保障:从签名格式与可信时间戳到长期有效性验证的工程实现 摘要:电子签名要在争议中被采信,靠的不是印章图像、也不是系统的一纸承诺,而是一条能被第三方独立复算的密码学证据链。本文从"可靠"的法定判据出发,把专有性、控制性、签名改动可发现、内容与形式改动可发现这四个要求逐...

大模型可观测与评测闭环:Langfuse+LangSmith结合OTel,落地Prompt A/B评测24.8

大模型可观测与评测闭环:Langfuse+LangSmith结合OTel,落地Prompt A/B评测24.8

现在我们做大模型应用,有个最基础、最直观的体会:写好Prompt、调通API只是项目的起点。本地测试效果看着很不错,一旦上线之后各种问题接踵而至。同样的输入,大模型时而回答精准,时而幻觉频发;不同Prompt版本效果好坏靠主观感觉判断,没有量化数据;线上用户真实问题无法回流,模型迭代全凭开发人员猜问题出在哪里;出现故障时,很难定位是Prompt问题、检索上下...

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册