首页 文章 精选 留言 我的

文章列表

共 219628 篇
学习备考陪跑:把备考变成定时任务

学习备考陪跑:把备考变成定时任务

学习类需求有个共同点:难的不是"找资料",而是"坚持"。WorkBuddy 的自动化模板里有不少面向学习的配置——每天 5 个英语单词、面试准备提醒(每两小时帮你过一遍大模型知识还出 3 道题)、会议准备、每日一个为什么。挂在身上之后,学习的节奏感明显不一样了:单词到点推送,复习提醒到点出现,不用靠脑子记着"今天还没学"。

React 中 useEffect 依赖数组的三种谎言与真实运行逻辑

React 中 useEffect 依赖数组的三种谎言与真实运行逻辑

很多人第一次写 useEffect 时都会默认“依赖数组就是告诉 React 什么时候重新执行副作用”。这个理解在简单场景下能用,但一旦涉及对象、函数、闭包和并发渲染,就会开始出现奇怪的 bug:明明依赖没变,副作用却跑了;或者依赖变了,副作用却拿不到最新值。问题的核心在于 React 并不比较依赖的“语义”,它只做 Object.is 比较,而且每次渲染都...

别再混淆了:JavaScript 中 e.target 与 e.currentTarget 的真实区别与实战踩坑

别再混淆了:JavaScript 中 e.target 与 e.currentTarget 的真实区别与实战踩坑

写事件处理函数时,我见过太多人在 click 回调里随手用 e.target 去改样式或取数据,结果在嵌套结构里翻车。比如一个卡片列表,点击内部的删除按钮,却把整个卡片的背景色改了;或者用事件委托监听 ul,点击 li 里的 span 时拿到的 target 是 span,而你需要的是那个 li。这类问题的根源就是没分清 e.target 和 e.curre...

在 Vue 3 和 React 中,el-table 那种“虚拟滚动+动态行高”到底该怎么落地?

在 Vue 3 和 React 中,el-table 那种“虚拟滚动+动态行高”到底该怎么落地?

表格组件在后台系统里几乎是刚需,但当数据量上千行、每行内容高度又不固定时,浏览器会直接卡成幻灯片。很多人第一反应是找现成的虚拟滚动库,可用在 el-table 或 antd Table 上时,往往发现它们只支持固定行高,稍微有点换行、图片或自定义插槽,滚动条就开始乱跳。这背后的核心矛盾是:虚拟滚动依赖精确的偏移量计算,而动态行高让每个元素的高度在渲染前无法预...

Vue 3 中如何正确监听元素尺寸变化:ResizeObserver 与自定义指令的实战

Vue 3 中如何正确监听元素尺寸变化:ResizeObserver 与自定义指令的实战

做后台管理系统的图表模块时,经常遇到一个情况:容器宽度明明是 100%,图表初始化后却挤在角落,或者拖拽侧边栏后图表没有重新计算尺寸,留出大片空白。这类问题大多不是 ECharts 或 Chart.js 本身的问题,而是 JS 没有感知到元素尺寸变化。传统的 window.resize 只能监听视口变化,但元素尺寸变动还可能来自 Flex 布局调整、父级 d...

Vue 3 中 watch 和 watchEffect 的清理函数到底解决什么问题?

Vue 3 中 watch 和 watchEffect 的清理函数到底解决什么问题?

在 Vue 3 的 Composition API 里,watch 和 watchEffect 都支持一个很多人见过但没深究的 onCleanup 回调。它最常见的出现场景是异步请求竞态:当侦听的数据频繁变化时,上一次请求还没返回,新请求已经发出,如果先发出的请求后返回,界面就会显示过期数据。除此之外,像防抖、取消订阅、清理定时器、中止 fetch 这类副作...

Vue 3 中 watch 和 watchEffect 的自动停止机制到底怎么工作

Vue 3 中 watch 和 watchEffect 的自动停止机制到底怎么工作

在 Vue 3 组件里用 watch 或 watchEffect 监听数据时,大部分场景都不需要手动停止,因为组件卸载后这些侦听器会自动失效。但一旦把侦听器创建在组件之外的模块作用域、异步回调或者第三方库的事件处理器里,自动停止就不再生效,反复注册会造成内存泄漏和重复执行。很多人只在组件 setup 中写过侦听器,对 onCleanup、effectScop...

Vue 3 中 v-model 绑定自定义组件时,为什么输入框会闪烁?

Vue 3 中 v-model 绑定自定义组件时,为什么输入框会闪烁?

在 Vue 3 项目里封装表单组件时,经常会把 v-model 透传到内部的 或

用户注册