vue自定义指令进行 接口 页面滚动懒加载

需求:多个模块在一个页面的数据看板,一次性请求多个接口,会造成页面卡断,有的接口运行缓慢,甚至出现canceled的情况

解决思路:前端进行接口滚动,自定义指令进行接口懒加载(模仿懒加载图片),滚动页面,当需要展示的页面出现在可见视图中,才进行接口加载


 <div ref="businessTab" id="模块id1" v-lazy-load="lazyMethod"></div>
 <div ref="businessTab" id="模块id2" v-lazy-load="lazyMethod"></div>
 <div ref="businessTab" id="模块id3" v-lazy-load="lazyMethod"></div>
 .....

import Vue from 'vue'
  Vue.directive("lazyLoad", {
    bind: function(el, binding,vnode) {
      let lazyImageObserver = new IntersectionObserver((entries, observer) => {
        entries.forEach((entry, index) => {
          let lazyImage = entry.target;
          // 相交率,默认是相对于浏览器视窗
          if (entry.isIntersecting){
            if (lazyImage.id==="模块id1") { 
           // 在自定义指令中 用 vnode.context.方法名()  来 访问methods中的方法
              vnode.context.方法名字1()
              vnode.context.方法名字2()
            }else if (lazyImage.id==="模块id2") {
              vnode.context.方法名字1()
              vnode.context.方法名字2()
            } else  if (lazyImage.id==="模块id3"){
              vnode.context.方法名字1()
              vnode.context.方法名字2()
            }

          }

        })
      })
      lazyImageObserver.observe(el);
    },
  });
  lazyMethod() {

  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值