vue翻页器,包括上一页,下一页,跳转

翻页组件 -- 子组件<template>  <div class="pager-wrapper" ref="pager">    <div class="pager-box">      <a class="pager-prev" :class="{‘pager-disabled‘:prevDisable}" href="javascript:void(0)" @click="jumpPrev()">上一页</a>      <template v-for="(i,index) in pageSize">        <span v-if="i==pageNo" class="pager-curr"  :key="index">          <em class="pager-em"></em>          <em>{{i}}</em>        </span>        <a v-else-if="pageNo<5&&(i)<6" href="javascript:void(0)" @click="jump(i)" :key="index">          {{i}}        </a>        <a v-else-if="pageSize<7||i==1||i==pageSize||(pageNo-2<=i&&i<=pageNo+2)" href="javascript:void(0)" @click="jump(i)" :key="index">          {{i}}        </a>        <template v-else>          <span v-if="pageNo<5&&i==6" class="pager-spr" :key="index">…</span>          <span v-if="pageNo==4&&i==7" class="pager-spr" :key="index">…</span>          <span v-if="pageNo>4&&i==pageNo-3" class="pager-spr" :key="index">…</span>          <span v-if="pageNo>4&&i==pageNo+3" class="pager-spr" :key="index">…</span>        </template>      </template>      <a class="pager-next" :class="{‘pager-disabled‘:nextDisable}" href="javascript:void(0)" @click="jumpNext()">下一页</a>    </div>    <div class="pager-input">      <div>跳转到:</div>      <input type="text" v-model="jumpPage">      <a class="pager-btn-go" href="javascript:void(0)" @click="Go()">GO</a>    </div>  </div></template>

<script>export default {  model: { // 通过v-model传过来的参数    prop: ‘pageNo‘,    event: ‘jumpPage‘  },  props: {    pageSize: {      type: Number,      default: 1    },    pageNo: { // 通过v-model传过来的参数      type: Number,      default: 1    }  },  data () {    return {      jumpPage: ‘‘ // 避免操作props参数    }  },  computed: {    prevDisable: function () { // “上一页”按钮是否可点      if (this.pageNo > 1) {        return false      } else {        return true      }    },    nextDisable: function () { // “下一页”按钮是否可点      if (this.pageNo < this.pageSize && this.pageSize > 1) {        return false      } else {        return true      }    }  },  methods: {    jumpPrev: function () { // 点击上一页      if (this.pageNo === 1) {        return false      } else {        this.$emit(‘jumpPage‘, this.pageNo - 1)      }    },    jumpNext: function () { // 点击下一页      if (this.pageNo === this.pageSize) {        return false      } else {        this.$emit(‘jumpPage‘, this.pageNo + 1) // 修改当前页码      }    },    jump: function (id) { // 直接跳转      if (id > this.pageSize) {        id = this.pageSize      }      this.jumpPage = ‘‘      this.$emit(‘jumpPage‘, id) // 修改当前页码    },    Go: function () {      if (this.jumpPage === ‘‘) { // 判空处理        return false      } else if (/^\d*$/.test(parseInt(this.jumpPage))) { // 填写数字才能跳转        this.jump(parseInt(this.jumpPage))        this.jumpPage = ‘‘      } else {        this.jumpPage = ‘‘        return false      }    }  }}</script>

<style scoped lang="stylus" type="text/stylus">  @import "~styles/varibles.styl"  .pager-wrapper    float right    display flex    flex-direction row    height 38px    .pager-box      margin-top -15px    a,span      display inline-block      width 38px      height 38px      margin 0 2px      border 1px solid #E5E5E5      color #bdbdbd      text-align center      font 14px/38px ""      em        color $bgColor    .pager-prev,.pager-next      width 78px    .pager-input      display flex      flex-direction row      height 38px      margin-left 20px      font 14px/40px ""      color #bdbdbd      input,.pager-btn-go        display inline-block        width 40px        height 40px        border 1px solid #E5E5E5        box-sizing content-box        outline none        text-align center</style>

父组件
<pager :pageSize="pageSize" v-model="pageNo" @jumpPage="jump"></pager>

//组件引入
import pager from ‘../../component/pager/pager.vue‘

//组件调用声明
components:{ pager}

//参数
data () {
  return {
    pageSize: 30, //总页数 -- 后台传值
    pageNo: 2  //当前页
  }
}

//接收跳转事件
methods:{
  jump (id) {
    console.log(id)
  }
}

原文地址:https://www.cnblogs.com/web-masong/p/10220233.html

时间: 2024-10-07 12:26:39

vue翻页器,包括上一页,下一页,跳转的相关文章

Android ListView上拉获取下一页

关于ListView上拉刷新的需求很多,实现方式也多种多样. 一般是简单的通过一个page变量来控制当前请求的页数,然后上拉的时候就发送请求. 实现出来后,经过测试哥的折腾,发现有诸多细节没有处理好,比如会出现重复数据,反复的上拉导致多次请求等bug. 后来就决定单独写一个工具类,方便以后需要直接使用. 1 public class ListViewScrollHelper<T> { 2 private static final String TAG = "ListViewScrol

使用Charles请求跳转可作为线上和线下环境的跳转

举个例子: 1.后端拿测试环境的客户端调试本地的代码 2.连接后端本地服务测试客户端和后端的交互 这样就可以改变客户端请求的测试环境换成其他的环境 一.配置 tools--Map remot... 这样重新请求接口,就会访问到指定的机器了 原文地址:https://www.cnblogs.com/Jack-cx/p/10041749.html

nodejs爬虫笔记(五)---利用nightmare模拟点击下一页

目标 以腾讯滚动新闻为例,利用nightmare模拟点击下一页,爬取所有页面的信息.首先得感谢node社区godghdai的帮助,开始接触不太熟悉nightmare,感觉很高大上,自己写代码的时候问题也很多,多亏大神的指点. 一.选择模拟的原因 腾讯滚动新闻,是每六十秒更新一次,而且有下一页.要是直接获取页面的话得一页一页的获取,不太方便,又想到了找数据接口,然后通过请求得到数据,结果腾讯新闻的数据接口是加密的,这种想法又泡汤了.因而想到笔记(四)中模拟加载更多的模块,看利用nightmare这

jsp实现上一页下一页翻页功能

前段时间一直忙于期末考试和找实习,好久没写博客了. 这段时间做了个小项目,包含了翻页和富文本编辑器Ueditor的两个知识点,Ueditor玩的还不是很深,打算玩深后再写篇博客. 要实现翻页功能,只需要设置一个pageIndex即可,然后每次加载页面时通过pageIndex去加载数据就行. 那么我们可以设置一个隐藏的input框,用于传递pageIndex给下个页面. 当我们点击上一页的时候,通过js方法改变pageIndex的值,再提交表单即可 二话不多说,看代码,代码里面写的还算比较清楚.

php网页上一页下一页翻页

这几天做项目因为数据太多,需要对信息进行上下翻页展示,就自己写了翻页的代码 大致功能就是页面只显示几条信息,按上一页.下一页切换内容,当显示第一页时上一页和首页选项不可选,当页面加载到最后一页时下一页和尾页选项不可选 具体效果如下: 接下来是实现代码 1)原生PHP方法 先说一下总思路吧,首先我们要查询所有符合条件需要进行分页的总数据,计算展示的总页数. 然后获取当前显示的是第几页信息,用当前页数每页数据条数表示为总数据的第几条,再根据限制条件查询出当前页所需显示出来的数据.将每一条数据echo

解决Mysql 主键id是UUID的上一页下一页数据翻页,附带SQL

解决id为UUID的上一页下一页数据翻页,把base_course_timetable表换成自己的表就可以了 SELECTbef.* FROM(SELECTt.rownum,t.id FROM( SELECT @rownum := @rownum + 1 AS rownum, base_course_timetable.* FROM ( SELECT @rownum := 0 ) r, base_course_timetable ) t WHEREt.rownum < (SELECTw.rown

DEDEcms手机网站添加详情内页上一页/下一页的翻页功能

修改文件include/arc.archives.class.php文件. 1.搜索 function GetPreNext($gtype='') 2.将这个函数的所有内容替换为 function GetPreNext($gtype='') { $rs = ''; if(count($this->PreNext)<2) { $aid = $this->ArcID; $preR = $this->dsql->GetOne("Select id From `#@__ar

C# 翻页设计:首页,上一页,下一页,末页 ,跳转

int pageSize = 0; //每页显示行数 int nMax = 0; //总记录数 int pageCount = 0; //页数=总记录数/每页显示行数 int pageCurrent = 0; //当前页号 int nCurrent = 0; //当前记录行 private void Bind() { //td = um.dataAll(); pageSize = 30; //设置页面行数 nMax = td.Rows.Count; pageCount = (nMax / pag

Django--分页器(paginator)、Django的用户认证、Django的FORM表单

分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Paginator(objects, 2) >>> p.count #数据总数 4 >>> p.num_pages #总页数 2 >>> type(p.page