乐优商场项目day13—页面分页效果

一、添加需要的数据

分页的话,我们需要知道总页数(totalPage)总条数(total)当前页(page),
所以我们先在data中记录这几个变量:

因为page是搜索条件之一,所以记录在search搜索对象中:

 

二、后台提供所需数据

我们后台中返回的PageResult对象里,其实是有这两个数据的:

 

我们只需要在返回时,将值填上:

重启搜索微服务,然后在页面测试一下看看:

 

 

三、编写页面显示效果

首先把后台提供的数据保存在data中:

先看一下要实现的分页效果:

这里面较难的是 1~5 的分页按钮,因为这五个按钮需要动态变化。

实现方法:

  • 因为最多5个按钮,所以我们可以用v-for循环1-5;
     
  • 但是分页条不一定是从1开始,要考虑以下几种情况:
    (当前页指的是当前选中的页,比如上面那个分页效果图的当前页是1)
    1.如果当前页值小于等于3的时候,分页条位置从1开始到5结束
    2.如果总页数小于等于5的时候,分页条位置从1开始到总页数结束
    3.如果当前页码大于3,应该从page-3开始
    4.如果当前页码大于totalPage-3,应该从totalPage-5开始

页面实现:

刷新页面查看效果:

优化一下显示:

 

四、编写绑定点击效果

绑定单击事件:

编写单击事件:

 

这样就可以完成上下一页和点击页的效果了;

不过其实当page发生变化时,我们应该去后台重新查询数据。
但是如果我们直接发起ajax请求,那么浏览器的地址栏中是不会有变化,也就没有记录下分页信息。
那么当用户刷新页面,就又会回到第一页,用户体验不好。
所以我们应该把搜索条件记录在地址栏的查询参数中
所以我们要监听search的变化,然后把search的过滤字段拼接在url路径后:

 

五、完成右上角的上下页

因为需要的数据和单击事件,前面都已经写好了。这里就很简单了:

分页就完成了。

 

欢迎大家交流与指正。

 

全部评论

相关推荐

小火柴燃烧吧:接啊,接了之后反手在咸鱼找个大学生搞一下,量大从优
点赞 评论 收藏
分享
jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务