vue实现上垃加载更多🌈

简介: vue实现上垃加载更多🌈

前言🏄


在移动端开发中经常会运用到上拉加载更多来实现分页的操作,不仅可以增加用户良好的体验,也可以让自己的项目看起来更加的丝滑~

那么具体要怎么做呢?


准备一个容器来设置滚动事件🚩


如果要设置固定高度容器则设置ref

<template>
    <div class="container" ref="scroll">
        <!-- 滚动内容代码 -->
    </div>
</template>
复制代码


写一个滚动事件方法🏇


onScroll(){
      //可滚动容器的高度
      let innerHeight = this.$el.clientHeight;
      //屏幕尺寸高度
      let outerHeight = document.documentElement.clientHeight;
      //可滚动容器超出当前窗口显示范围的高度
      let scrollTop = document.documentElement.scrollTop;
      //避免切换时读取到异常高度
      if(scrollTop==0){
        innerHeight=10000
      }
      //scrollTop在页面为滚动时为0,开始滚动后,慢慢增加,滚动到页面底部时,出现innerHeight < (outerHeight + scrollTop)的情况,严格来讲,是接近底部。
      console.log(innerHeight + " " + outerHeight + " " + scrollTop);
      if(this.isLoad){
        console.log(1)
        if(innerHeight <= outerHeight + scrollTop){
          //此处添加自定义操作
        }
      }
    },
复制代码

如果设置了ref则将 $el换成$refs.scroll即可


设置滚动事件开关


data () {
    return {
                isLoad:true,
                msg:"正在加载"
    };
   },
复制代码


在生命周期函数 添加滚动事件和移除滚动事件


mounted(){
    //开启滚动事件
    window.addEventListener("scroll", this.onScroll);
  },
destroyed(){
                //关闭滚动事件
    window.removeEventListener("scroll",( this.onScroll));
  }
复制代码

值得一提的是如果该页面用了keepalive则会没有destroyed生命周期则用新增的两个生命周期来添加和移除滚动事件

activated(){
        //开启滚动事件
        window.addEventListener("scroll", this.onScroll);
    },
deactivated(){
        //关闭滚动事件
        window.removeEventListener("scroll",( this.onScroll));
    },
复制代码


写在最后🚣


以上就是分享的vue上拉加载更多操作,其实现在有很多已经开发好的插件可以使用,原理都是差不多监听窗口的高度来进行操作,平时开发时多加运用就好啦~


参考


参考官网: keep-alive使用

相关文章
|
1天前
|
JavaScript
vue 下载插件downloadjs
vue 下载插件downloadjs
8 1
|
1天前
|
JavaScript
vue组件封装 —— 仪表盘(有缺口的环形进度条内显示百分比值)
vue组件封装 —— 仪表盘(有缺口的环形进度条内显示百分比值)
7 1
|
1天前
|
JavaScript
vue实战——元素的拖拽 + 控制元素无法拖拽出盒子 + 随元素拖拽自适应变化大小的盒子
vue实战——元素的拖拽 + 控制元素无法拖拽出盒子 + 随元素拖拽自适应变化大小的盒子
6 1
|
1天前
|
XML JavaScript 前端开发
vue实战——图标,请使用SVG!(含插件vue-svg-icon的使用)
vue实战——图标,请使用SVG!(含插件vue-svg-icon的使用)
7 1
|
1天前
|
JavaScript
vue实战--v-for 遍历渲染按钮的两种实现方案(重点:按钮点击事件的绑定技巧)
vue实战--v-for 遍历渲染按钮的两种实现方案(重点:按钮点击事件的绑定技巧)
10 1
|
2天前
|
缓存 JavaScript 前端开发
Vue之异步组件【探究 Vue 的异步组件的魔力所在】
Vue之异步组件【探究 Vue 的异步组件的魔力所在】
5 1
|
1天前
|
JavaScript
Eslint-------error ‘Vue‘ is not defined no-undef
Eslint-------error ‘Vue‘ is not defined no-undef
|
1天前
|
JavaScript
|
1天前
|
JavaScript 测试技术
Vue开发项目过程中环境变量的配置(vite、vue3、ts)
Vue开发项目过程中环境变量的配置(vite、vue3、ts)
6 0
|
1天前
|
JSON JavaScript 前端开发
VUE实现一个购物车
VUE实现一个购物车
6 0