vue上拉加载更多,vue下拉加载

  vue上拉加载更多,vue下拉加载

  这篇文章主要为大家详细介绍了某视频剪辑软件实现下拉加载更多,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  熟悉元素-用户界面的开发者可能都会有这样的经历,它的无限滚动无限小球并不好用,下面介绍两种下拉加载的实现方法:

  

1. 使用el-table-infinite-scroll 插件

  (1).安装插件

  新公共管理安装-保存埃尔-表格-无限滚动

  (2).全局引入并注册

  //main.js

  从" El-表格-无限卷轴"导入无限小滚动

  vue。使用(elTableInfiniteScroll);

  (3).局部文件引入

  脚本

  //引入

  从" El-表格-无限卷轴"导入无限小滚动

  导出默认值{

  //注册指令

  指令:{

  “El-table-infinite-scroll”:eltable无限滚动

  }

  }

  /脚本

  (4).使用指令

  El-table:height= tableHeight v-El-table-infinite-scroll= load more

  /el-table

  (5).代码实例

  模板

  div class=应用程序容器

  El-table:height= tableHeight v-El-table-infinite-scroll= load more :data= table list

  !-表格数据省略-

  /el-table

  /div

  /模板

  脚本

  //引入插件

  从" El-表格-无限卷轴"导入无限小滚动

  导出默认值{

  名称:"索引",

  data() {

  返回{

  //表格高度

  表格高度:,

  //数据总数

  表计数:0,

  //表格数据列表

  表列表:[],

  //是否加载中

  tableLoading:false,

  //表格搜索条件

  表搜索:{

  第一页

  }

  }

  },

  //注册指令

  指令:{

   El-table-infinite-scroll :El table无限滚动,

  },

  已创建(){

  设窗口高度=文档。文档元素。客户高度 文档。身体。客户身高;

  //动态计算表格的高度,200为屏幕内除了表格以外其他元素的高度,依实际情况而定

  这个。tableheight=窗口高度-200 px ;

  },

  已安装(){

  这个。gettabledata(这个。表搜索);

  },

  方法:{

  //请求表格数据

  getTableData(搜索){

  let page=search.page

  让url=index?page= page

  //首次打开页面要加载一次数据,为了防止数据过多自动触发滚动,此处需要置为加载中

  this.tableLoading=true

  这个http.get(url).然后((结果)={

  if (res.code==10000) {

  //拼接数据

  这个。表列表=这个。表列表。concat(结果。数据。列表);

  这个。表计数=结果。数数;

  这个。表格搜索。页面=结果。当前;

  this.tableLoading=false

  }

  });

  },

  //加载更多

  loadMore() {

  如果(!this.tableLoading) {

  this.tableLoading=true

  如果(这个。表列表。长度这个。表计数){

  这个。表格搜索。页面;

  这个。gettabledata(这个。表搜索);

  }否则{

  这个. $消息(已加载完所有的数据!);

  this.tableLoading=false

  }

  }

  },

  }

  };

  /脚本

  

2. 自定义下拉加载方法

  上面使用的插件需要依赖元素-UI,如果没有使用元素-UI,那就只能自己写一个下拉加载了,实现代码如下:

  模板

  div class=应用程序容器

  div :style={height:tableHeight,overflow:auto} id=tableBox

  !-表格数据省略-

  /div

  /div

  /模板

  脚本

  导出默认值{

  名称:"索引",

  data() {

  返回{

  //表格高度

  表格高度:,

  //数据总数

  表计数:0,

  //表格数据列表

  表列表:[],

  //是否加载中

  tableLoading:false,

  //表格搜索条件

  表搜索:{

  第一页

  }

  };

  },

  已创建(){

  设窗口高度=文档。文档元素。客户高度 文档。身体。客户身高;

  //动态计算表格的高度,200为屏幕内除了表格以外其他元素的高度,依实际情况而定

  这个。tableheight=窗口高度-200 px ;

  },

  已安装(){

  这个。gettabledata(这个。表搜索);

  文档。getelementbyid( tableBox ).addEventListener(scroll ,this。ontablescroll);

  },

  销毁前(){

  //移除监听事件

  窗户。removeeventlistener( scroll ,this.onTableScroll)

  },

  方法:{

  onTableScroll(){

  var obj=文档。getelementbyid( tableBox );

  var滚动高度=obj。滚动高度;

  var scroll top=obj。滚动顶部;

  var obj height=obj。偏移高度;

  //100为阈值,可根据实际情况调整

  if(scroll height=(scroll top obj height 100)!这个。桌子加载这个。表列表。长度这个。表计数){

  this.tableLoading=true

  这个。表格搜索。页面;

  setTimeout(()={

  这个。gettabledata(这个。表搜索);

  },300)

  }

  },

  getTableData(搜索){

  let page=search.page

  让url=index?page= page

  //首次打开页面要加载一次数据,为了防止数据过多自动触发滚动,此处需要置为加载中

  this.tableLoading=true

  这个http.get(url).然后((结果)={

  if (res.code==10000) {

  //拼接数据

  这个。表列表=这个。表列表。concat(结果。数据。列表);

  这个。表计数=结果。数数;

  这个。表格搜索。页面=结果。当前;

  this.tableLoading=false

  }

  });

  },

  },

  };

  /脚本

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: