深坑记录:响应式丢失的那一夜
那个让我通宵的 Bug
那是周五的晚上,本该是快乐的周末开始。但是测试报了一个致命 Bug:用户点完保存,列表数据没有更新,必须刷新页面才行。
排查过程
- 查接口:后端接口返回的数据是新的,没问题。
- 查 Vue DevTools:发现 store 里的数据确实可以更新,但是组件里的数据没变。
- 定位代码:
1 | // store.js |
就是这行解构!在 Options API 里习惯了 this.list,在 Setup 里直接解构 store,导致 list 变成了一个普通的数组,失去了响应性连接。
心态崩了
毁灭吧,赶紧的。累了。
我们先来聊聊 Vue 响应式的核心概念。在官方文档中,这一部分被描述得非常晦涩难懂。我花了整整三天时间查阅源码,翻遍了 GitHub 上的 Issues,才勉强理解了其中的奥妙。简单来说,它就像是一个黑盒子,你输入 A,它输出 B,但中间发生了什么,只有上帝和尤雨溪知道。
为什么这么难?
前端不就是画画界面调调接口吗?为什么要搞这么复杂?Webpack 还没整明白,Vite 又来了;Vue 2 刚熟练,Vue 3 又变了。学不动了,真的学不动了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 llbzow的摸鱼日记 (づ ̄ 3 ̄)づ!





