我有一个Vue组件,它使用多个子组件.在这些子组件上,我有一个观察数据变化并处理这些变化的观察者.我想为此实施去抖动.
watch: {
data: {
handler: function () {
this.processData()
},
deep: true
}
},
methods: {
processData: debounce(function () {
console.log(this.id)
}, 250),
Run Code Online (Sandbox Code Playgroud)
问题是debounce有效,所以它只在最后一个子组件上执行.
我找到了一个debounce函数的解决方案,可以接受额外的id debounceWithId
但问题是,如果我指定此函数如下:
methods: {
processData: debounceWithId(function () {
console.log(this.id)
}, 250, this.id),
Run Code Online (Sandbox Code Playgroud)
最后一个this.id未定义.
在多个组件中使用去抖动的正确方法是什么,因此该函数会在每个组件上单独触发?