当前位置:   article > 正文

Vant2+Vue2实现点击加载更多数据~_vue2 查看更多文档实现

vue2 查看更多文档实现

在做题目的时候遇到这么一个问题

但是发现这个要求的时候已经把数组都渲染好了

  1. <div class="main">
  2. <van-tabs v-model="active">
  3. <van-tab>
  4. <template #title>
  5. <a href="javascript:void(0)" @click="getAll">默认</a> </template>
  6. <van-grid :border="false" :column-num="2">
  7. <van-grid-item v-for="item in allList" :key="item.id">
  8. <van-image :src="item.url" />
  9. <p>{{item.name}}</p>
  10. <h3>¥{{item.price}}</h3>
  11. </van-grid-item>
  12. </van-grid>
  13. </van-tab>
  14. <van-tab>
  15. <template #title>
  16. <van-icon name="sort" />
  17. <a href="javascript:void(0)" @click="orderSort">默认</a>
  18. </template>
  19. <van-grid :border="false" :column-num="2">
  20. <van-grid-item v-for="item in allList" :key="item.id">
  21. <van-image :src="item.url" />
  22. <p>{{item.name}}</p>
  23. <h3>¥{{item.price}}</h3>
  24. </van-grid-item>
  25. </van-grid>
  26. </van-tab>
  27. <van-tab>
  28. <template #title>
  29. <a href="javascript:void(0)" @click="timeSort">新品</a> </template>
  30. <van-grid :border="false" :column-num="2">
  31. <van-grid-item v-for="item in allList" :key="item.id">
  32. <van-image :src="item.url" />
  33. <p>{{item.name}}</p>
  34. <h3>¥{{item.price}}</h3>
  35. </van-grid-item>
  36. </van-grid>
  37. </van-tab>
  38. </van-tabs>

然后要根据需求去实现对应的:当数组的长度>10个的时候,就先展示十个,然后点击下面的加载更多就可以把后面的渲染出来,而且是指定的个数

那么就可以用到slice

1、声明一个长度变量,配合slice方法

在data上声明一个变量:length,值指定,我这里给10,这里我默认展示0-10条数据

我这里的HTML结构是用了vant2的自定义宫格,然后对宫格做循环才渲染的列表

 要改的话对循环动刀就可以了

思路:把数组进行分隔渲染

给循环的数组添加分隔函数

分隔从0开始,不包含10嘛,就一共是10条,这个length是前面定义的变量

但是这个时候报错了

 但是删掉splice()函数后数组又正常渲染,那么就是函数的问题了

去看了一下

 splice会把分隔结果返回给原数组(覆盖掉)

这个时候发现了另外一个方法:slice()

 

 那这个时候试着去对循环的数组用上 slice()方法

 这里为了方便看就先把length改为2了

        

打开页面一看,欸,没有保存,还成功了

然后接下来就要求实现【点击加载更多】这个效果了 

2、实现点击加载更多

前提:这个时候已经做了一个分隔,length的值我这里改为2,方便观察

在底部去声明一个P标签

 然后在下面声明一个P标签,给P标签加一个v-if和点击事件

点击事件里面对length变量进行一个 length+=要额外添加的个数

v-if去对p做一个判断,如果length的长度小于原数组长度就让length++

  1. <p v-if="length < allList.length" @click="length += 2" class="footer">———— 点击加载更多 ————</p>
  2. <p v-else class="footer">———— 没有更多了 ————</p>

 这里没有隐藏掉,是改了文字

 点击加载

 完成了思密达!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/76792
推荐阅读
相关标签
  

闽ICP备14008679号