当前位置:   article > 正文

vue3 通过自定义指令在table中滚动加载数据

vue3 通过自定义指令在table中滚动加载数据

1.在utils文件中新建一个loadMore.ts文件。

import type { Directive, App } from 'vue';

const debounce = function (func: any, delay: any) {
  let timer: any = null
  return function () {
    if (timer) clearTimeout(timer)
    timer = null
    let self = this
    let args = arguments
    timer = setTimeout(() => {
        func.apply(self, args)
    }, delay)
  }
}

const loadMore: Directive = {
  mounted (el: any, binding: any, vnode: any) {
    const { expand } = binding.modifiers
    // 使用更丰富的功能,支持父组件的指令作用在指定的子组件上
    if (expand) {
      /**
       * target 目标DOM节点的类名
       * distance 减少触发加载的距离阈值,单位为px
       * func 触发的方法
       * delay 防抖时延,单位为ms
       * load-more-disabled 是否禁用无限加载
       */
      let { target, distance = 0, func, delay = 200 } = binding.value
      if (typeof target !== 'string') return
      let targetEl = el.querySelector(target)
      if (!targetEl) {
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/698597
推荐阅读
相关标签
  

闽ICP备14008679号