这次在写业务的时候因为是无限层级的递归表单,用了 provide/inject
来暴露注册以便收集数据。所以就想要用 Map
数据结构来处理数据的收集等等功能。直接使用 记录ID 作为键名就可以了,这样也可以直接去重。但是写完了业务代码之后发现我把后代的表单注册进来并没有触发响应,导致数据回填失败。
所以想着是不是 Vue 2x
无法监听 Map
或者 Set
的数据变更的。就去检索了一下相关的信息,发现 Vue 2x
真的无法监听 Map
以及 Set
俩兄弟。只能够通过修改其他变量来曲线救国。
Vue 3x
通过 Proxy
来代理就没有了这个问题。