100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > vue自定义指令进行 接口 页面滚动懒加载

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

时间:2019-09-13 06:05:58

相关推荐

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() {},

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。