vue中实现同一个方法在1秒中只执行一次
时间: 2024-03-20 09:43:23 浏览: 193
在Vue中实现同一个方法在1秒中只执行一次可以使用防抖或节流的方式。
1. 防抖:在指定的时间内,如果事件被触发多次,只执行最后一次触发的事件。
可以使用lodash库中的debounce方法来实现防抖:
```javascript
import { debounce } from 'lodash'
export default {
data() {
return {
inputValue: ''
}
},
methods: {
handleInput: debounce(function() {
console.log(this.inputValue)
}, 1000)
}
}
```
2. 节流:在指定的时间内,事件被触发多次,每隔指定时间执行一次事件。
可以自己实现一个简单的节流函数:
```javascript
export default {
data() {
return {
inputValue: ''
}
},
methods: {
handleInput() {
throttle(() => {
console.log(this.inputValue)
}, 1000)
}
}
}
function throttle(fn, delay) {
let timer = null
return function() {
if (!timer) {
timer = setTimeout(() => {
fn.apply(this, arguments)
timer = null
}, delay)
}
}
}
```
以上两种方法都可以实现同一个方法在1秒中只执行一次,具体使用哪种方式取决于需求。
阅读全文