Vue 3 中 watch 与 watchEffect 的刷新时机:flush 配置的实战影响与避坑
在 Vue 3 的组合式 API 里,watch 和 watchEffect 的第三个参数 flush 控制着副作用函数的执行时机,可选值有 'pre'、'post' 和 'sync'。很多同学默认用 watch 监听一个响应式数据,然后在这个回调里读取另一个 ref 或者访问 DOM,结果发现拿到的是旧值,或者 DOM 更新还没发生。这通常不是响应式系统出了问题,而是刷新时机没选对。pre 是默认行为,在组件更新前执行;post 在组件更新后执行;sync 则同步触发,每次数据变化立刻调用。理解这三者的差异,能帮你避免大量“数据更新了但视图没同步”“watch 里拿不到最新 DOM”之类的 ...