采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
对el-input进行封装的时候,发现封装的组件里通过$listener也能获取到v-model语法糖中的input方法。这是不是说明修改value的时候我可以用这个$listener中的input 代替$emit('input')了呢?
虽然 $listener 包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器,但我建议还是要按规范来吧,使用 $emit 的方式
最开始也是用emit方法的,但这样也会触发手动添加的input,因为自己封装的组件在value变成不满足规定格式的值时,要把它修正回来,当父组件是通过js修改了value时,就会出现这个问题。 如果 想在保持外部调用的方式与使用input相同的同时,兼容@input事件,有可能实现吗。
参考:https://cn.vuejs.org/v2/guide/components-custom-events.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6%E7%9A%84-v-model,可以修改事件名
就像在掉用组件的时候不写@input而是@input1吗?有没有办法让emit只调用多个方法中的一个呢
登录后可查看更多问答,登录/注册
全方位讲解 Vue.js 源码,进阶高级工程师
3.0k 4
1.5k 20
1.3k 14
1.2k 12
2.2k 12