首页IT科技vue数据滚动效果组件(Vue组件滚动加载、懒加载功能的实现,无限滚动加载组件实例演示)

vue数据滚动效果组件(Vue组件滚动加载、懒加载功能的实现,无限滚动加载组件实例演示)

时间2025-09-19 12:17:58分类IT科技浏览7501
导读:效果图如下:...

效果图如下:

可以看到随着不断的滚动                 ,页面组件的数量不断的加载                 。

其实加载的是后端返回的数据                          ,因为涉及隐私        ,没有给显示出来                          。

利用懒加载         ,可以防止大量渲染造成卡顿降低用户体验        。

页面的动态加载这块可以看上一篇文章: Vue 动态添加和删除组件的实现                          ,子组件和父组件的传值实例演示

下面主要讲一下动态加载的实现思路:

首先懒加载主要有两种形式                 ,一种是不断的从后端请求返回前端         ,每次获取一部分数据                          ,另一种是一次性把数据加载到前端                 ,然后一部分一部分的展示         。

本次演示的数据量不大,采用后面的方法来实现                          。

首先利用 axios 从后台获取数据                          ,存储下来                          ,并且执行一次加载组件的动作                 。

// 向后台发送请求得到数据 get_data(){ axios .get(http://127.0.0.1:10086) .then(response => { this.response_data=response.data; // 默认执行一次数据加载 this.load_data(); }) // 请求失败抛出异常在控制台 .catch(function (error) { console.log(error); }); }

然后对滚动进行监听 window.addEventListener(scroll, this.rolling); 当检测滚动条滚到底部时,加载数据         。

当滚动过的距离 + 可视区的高度 >= 滚动条长度时                 ,就相当于滚动到了底部                          。 rolling () { // 滚动过的距离 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop // 当前可视区的高度 var clientHeight = document.documentElement.clientHeight // 滚动条的长度 var scrollHeight = document.documentElement.scrollHeight // 当滚动过的距离+可视区的高度>=滚动条长度时                          ,就相当于滚动到了底部 if (scrollTop + clientHeight >= scrollHeight) { this.load_data(); } }

下面是主要的代码

methods:{ // 数据加载 load_data(){ for(var i=0; i<6; i++){ this.index++; if(this.index<Object.keys(this.response_data).length+1){ this.album.push(this.response_data[this.index.toString()]); } } }, // 向后台发送请求得到数据 get_data(){ axios .get(http://127.0.0.1:10086) .then(response => { this.response_data=response.data; // 默认执行一次数据加载 this.load_data(); }) // 请求失败抛出异常在控制台 .catch(function (error) { console.log(error); }); }, rolling () { // 滚动过的距离 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop // 当前可视区的高度 var clientHeight = document.documentElement.clientHeight // 滚动条的长度 var scrollHeight = document.documentElement.scrollHeight // 当滚动过的距离+可视区的高度>=滚动条长度时        ,就相当于滚动到了底部 if (scrollTop + clientHeight >= scrollHeight) { this.load_data(); } } }, mounted() { // 加载数据 this.get_data(); // 添加滚动监听 window.addEventListener(scroll, this.rolling); }, data(){ return{ album: [], index: 0, response_data: "" } }

喜欢的点个赞❤吧!

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python pip环境配置(python pipenv的环境运行)