现实中使用场景也挺多,比如搜索框,滚动条,及时保存…使用防抖和节流可以优化性能
防抖(debounce)
首先以搜索框为例:
为了防止接口频繁调用,如果在规定时间内没有再次触发事件,就执行函数;如果规定时间内再次触发,那么当前计时取消,重新开始计时。
效果:如果短时间内大量触发同一个事件,只会执行一次函数
<template>
<div class="about">
<el-autocomplete v-model="state" :fetch-suggestions="querySearchAsync" placeholder="请输入内容" style="width:100%">
<template #default="scope">
<el-table :data="contents">
<el-table-column prop="name" label="作者" width="100">
</el-table-column>
<el-table-column prop="value" label="古诗">
</el-table-column>
</el-table>
</template>
</el-autocomplete>
</div>
</template>
<script>
import ancient from "../uilt/index";
import {
debounce } from "../uilt/debounce";
// import { throttle } from "../uilt/throttle";
export default {
data() {
return {
state: "",
contents: [],