Vue.js VueJs watcher与模型实例上的多个事件侦听器

Vue.js VueJs watcher与模型实例上的多个事件侦听器,vue.js,vuejs2,vue-component,Vue.js,Vuejs2,Vue Component,我试图找出哪种方法更合适/资源紧张程度更低。下面两个例子的作用相同,但我的理解是,在某些情况下,@keyup和@change两个事件都可能被不必要地触发-因此我的问题是,watch方法是否是一个更好的选择 我还需要检查@change事件的原因是当某人只是选择保存的输入值而不是键入它时 导出默认值{ 道具:{ 姓名:{ 类型:字符串, 必填项:true }, 初始值:{ 类型:字符串, 必填项:false, 默认值:“” } }, 数据(){ 返回{ 字段:this.initialValue }

我试图找出哪种方法更合适/资源紧张程度更低。下面两个例子的作用相同,但我的理解是,在某些情况下,
@keyup
@change
两个事件都可能被不必要地触发-因此我的问题是,
watch
方法是否是一个更好的选择

我还需要检查
@change
事件的原因是当某人只是选择保存的输入值而不是键入它时


导出默认值{
道具:{
姓名:{
类型:字符串,
必填项:true
},
初始值:{
类型:字符串,
必填项:false,
默认值:“”
}
},
数据(){
返回{
字段:this.initialValue
}
},
安装的(){
这个.update();
},
方法:{
更新(){
此.emit('input',此.field);
}
}
}
vs


导出默认值{
道具:{
姓名:{
类型:字符串,
必填项:true
},
初始值:{
类型:字符串,
必填项:false,
默认值:“”
}
},
数据(){
返回{
字段:this.initialValue
}
},
安装的(){
这个.update();
},
观察:{
字段(){
这个.update();
}
},
方法:{
更新(){
此.emit('input',此.field);
}
}
}

我想你想要的是我的专利(只是拿专利开玩笑)谢谢@RoyJ-使用setter/getter而不是
watcher
或上述任何事件的计算属性有什么特别的好处吗?首先,它更干净。它将数据项和观察者封装在一个对象中,而不是将它们分散在数据、观察和方法中。我假设
input
事件是由父级更新prop来处理的?是的,没错-它只是将子组件外部的输入推送到父级。它将返回prop的值,当父级更改传入的变量的值时,prop的值会发生变化。我使用
value
,因为
v-model
就是这样工作的。