是不是还可以接着写 @change ?
来源:3-9 vue如何自己实现v-model
浅芷初夏
2020-03-14
老师,子组件里既然使用 $emit(‘change’, $event.target),那父组件调用可以这样写吗:
<CustomVModel v-model=‘initValue’ @change=‘fn’>
data() {
return { initValue: ‘默认值’ }
},
methods: {
fn(target) {
console.log(target)
// do something,such as change initValue
}
}
第二个问题就是,通过看文档发现:$emit(‘update:title’, newTitle) 这样的方式,和 $emit(‘change’, $event.target) 有什么区别吗?文档描述得不是太清晰,我没看的太懂。
写回答
1回答
-
双越
2020-03-14
第一,v-model 是双向绑定,会自动变化 data 的值,再用 change 就多此一举了。想监听 data 可以用 watch 。
第二,$emit 第二个参数就是一个值,用 newTitle 还是 $event.target 都可以,只要能获取到你想要的值即可。
012020-03-14
相似问题