//节流:在规定的间隔时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发(1)

在 node_modules有 lodash 可以直接引入使用 
// 全部引入lodash
import _ from 'lodash' (不推荐)
// 按需引入 lodash的节流方法(throttle)
import throttle from 'lodash/throttle' (推荐)

  methods: {
    // 开启节流 不用使用 箭头函数,有 this指向的问题
    changeIndex:throttle(function(index){
      this.activeIndex = index
    },100)
  },
};

产考官网的文档使用
_.throttle(func, [wait=0], [options=])

    参数
    func (Function): 要节流的函数。
    [wait=0] (number): 需要节流的毫秒。
    [options=] (Object): 选项对象。
    [options.leading=true] (boolean): 指定调用在节流开始前。
    [options.trailing=true] (boolean): 指定调用在节流结束后。
    返回
    (Function): 返回节流的函数。

节流(2)

  // 导包
  npm i lodash 
  // 全部引入lodash
  import _ from 'lodash' (不推荐)
  // 按需引入 lodash的节流方法(throttle)
  import debounce from 'lodash/throttle' (推荐)
  // 在  wacth中使用
    watch: {
      //属性名:要监视的数据的名称
      searchValue: {
        immediate: true,
        handler:
        // 防抖
          debounce(async function () {
            const { data } = await getSearchSuggestions(this.searchValue)
            this.suggestions = data.data.options
          }, 1000)
      }
    },

// 防抖:前面的所有的触发都被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发·只会执行一次


posted on 2022-02-24 16:24  最贵不过坚持  阅读(1936)  评论(0编辑  收藏  举报