这是一个创建于 1463 天前的主题,其中的信息可能已经有所发展或是发生改变。
最近用了一些 ui 框架 主要是 element 和 antdv,但是对里面一些组件的设计有些不解。
组件库里有一些支持 v-model 实现双向绑定、同时又有 change 回调的组件。我在使用时发现:如果我在页面其他地方手动修改了绑定的数据 这个 change 回调并不会被触发。
比如一个 collapse 折叠面板 绑定了一个 active-key,如果我用另外一个按钮修改了这个 active-key 视图是有变化的,但是组件上面的 change 回调并不会被触发,只有用鼠标点击来切换选项的时候才会触发事件。
我发现 antdv 和 eleme 都有一样的情况,我感觉应该是有意而为之,但是不太明白为什么要这么做?希望大佬们能解答一下我的疑惑 感激不尽!
看了一下 element 这部分的源码,发现只有点击 item 的时候才会对外面 emit 这个事件 如果用 watch 应该就不会出现这个情况。
2 条回复 • 2020-05-22 19:23:16 +08:00
|
|
1
SilentDepth 2020-05-22 14:08:28 +08:00 1
可能是为了避免同时存在直接修改状态和监听 change 事件时相关逻辑执行两次的问题吧。
|