V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Pyrex23
V2EX  ›  前端开发

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

  •  
  •   Pyrex23 · 2020-05-21 14:41:02 +08:00 via iPhone · 918 次点击
    这是一个创建于 1673 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近用了一些 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
    SilentDepth
        1
    SilentDepth  
       2020-05-22 14:08:28 +08:00   ❤️ 1
    可能是为了避免同时存在直接修改状态和监听 change 事件时相关逻辑执行两次的问题吧。
    Pyrex23
        2
    Pyrex23  
    OP
       2020-05-22 19:23:16 +08:00 via iPhone
    @SilentDepth 确实有道理 我没考虑到这方面,谢谢大佬!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5540 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:58 · PVG 09:58 · LAX 17:58 · JFK 20:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.