Vue 防抖 (debounce) 指的是在一定时间内只执行一次函数,而不是在每次触发事件时都执行一次函数。这样可以有效的防止函数的频繁调用,从而优化性能。
例如,当用户在输入框中输入文本时,我们可能希望在用户输入完成一段时间后(比如 500 毫秒)才执行一次函数,而不是在每次输入时都执行函数。
你可以使用 Vue 实例的 $nextTick
方法来实现防抖,例如:
<template>
<div>
<input v-model="message" @input="debounceUpdateMessage">
</div>
</template>
<script>
export default {
data() {
return {
message: ''
}
},
methods: {
debounceUpdateMessage() {
this.$nextTick(() => {
this.updateMessage()
})
},
updateMessage() {
// 这里是执行防抖函数的代码
}
}
}
</script>