使用 vue 的 ui 框架遇到的一个问题

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/674013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX