用Vue2.0实现简单的分页及跳转
用Vue2.0实现简单的分页及跳转
用Vue2.0实现一个数据的分页及页数的跳转,代码如下:
- 数据绑定:{{...}} <a v-on:click="btnClick(item)">{{item}}</a>
- 事件绑定:v-on <a v-on:click="cur--,pageClick()">上一页</a>
- 判断:v-if <li v-if="cur==1"><a class="banclick">上一页</a></li>
- 循环:v-for <li v-for="item in indexs" v-bind:class="{'active':cur==item}"></li>
- 修改样式:v-bind绑定class属性 <li v-for="item in indexs" v-bind:class="{'active':cur==item}"></li>
HTML代码如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>分页</title>
- <style>
- *{margin: 0;padding: 0;}
- #page-break{margin-top: 20px;margin-left: 20px;}
- #page-break li{list-style: none;}
- #page-break a{border: 1px solid #ddd; text-decoration: none;float: left;padding: 6px 12px;color: #337ab7;cursor: pointer}
- #page-break a:hover{background-color: #eee;}
- #page-break a .banclick{cursor: not-allowed;}
- #page-break .active a{color: #fff;cursor: default;background-color: #337ab7;border-color: #337ab7;}
- #page-break i{font-style: normal;color: #d44950;margin: 0px 4px;font-size: 12px;}
- #page-break .jumpbox .jumppage {border: 1px solid #ddd; margin-left: 40px; height: 33px; width: 40px; float: left;}
- #page-break .jumpbox .jumpbtn {cursor: pointer; margin-left: 10px;}
- #page-break .jumpbox .jumpbtn:active {color: #337ab7;}
- </style>
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
- </head>
- <body>
- <div id="page-break">
- <ul>
- <li v-if="cur>1">
- <a v-on:click="cur--,pageClick()">上一页</a>
- </li>
- <li v-if="cur==1">
- <a class="banclick">上一页</a>
- </li>
- <li v-for="item in indexs" v-bind:class="{'active':cur==item}">
- <a v-on:click="btnClick(item), pageClick()">{{item}}</a>
- </li>
- <li v-if="cur!=all">
- <a v-on:click="cur++,pageClick()">下一页</a>
- </li>
- <li v-if="cur==all">
- <a class="banclick">下一页</a>
- </li>
- <li><a>共<i>{{all}}</i>页</a></li>
- <div class="jumpbox">
- <input type="number" class="jumppage" />
- <a class="jumpbtn" v-on:click="pageSkip()">跳转</a>
- </div>
- </ul>
- </div>
- </body>
- </html>
js代码如下:
- new Vue({
- el: '#page-break',
- data: {
- cur: 1,
- all: 20
- },
- watch: {
- cur: function(newValue, oldValue){
- console.log(arguments);
- }
- },
- methods: {
- btnClick(num){
- if(num!=this.cur){
- this.cur=num;
- }
- },
- pageClick(){
- console.log('现在是'+this.cur+'页')
- },
- pageSkip(){
- var maxPage = this.all;
- var skipPage = Number(document.getElementsByClassName("jumppage")[0].value);
- console.log(typeof skipPage);
- if(!skipPage){
- alert("请输入跳转页码");
- return;
- }else if(skipPage<1 || skipPage>maxPage){
- alert("您输入的页码超过页数范围了!");
- return;
- }else{
- //this.cur=skipPage;
- this.btnClick(skipPage);
- this.pageClick();
- }
- }
- },
- computed: {
- indexs(){
- var left = 1;
- var right = this.all;
- var arr = [];
- if(this.all>=7){
- if(this.cur>4 && this.cur<this.all-3){
- left = this.cur-3;
- right = this.cur+3;
- }else if(this.cur<=4){
- left=1;
- right=7;
- }else{
- left=this.all-6;
- right=this.all;
- }
- }
- while(left<=right){
- arr.push(left);
- left++;
- }
- return arr;
- }
- }
- })
分页显示如下:


用Vue2.0实现简单的分页及跳转的更多相关文章
- 后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_158 在之前的一篇文章中:为美多商城(Django2.0.4)添加基于websocket的实时通信,主动推送,聊天室及客服系统,详 ...
- Vue2.0 中,“渐进式框架”和“自底向上增量开发的设计”这两个概念是什么?(转)
https://www.zhihu.com/question/51907207?rf=55052497 徐飞 在我看来,渐进式代表的含义是:主张最少. 每个框架都不可避免会有自己的一些特点,从而会对使 ...
- Vue2.0 基础入门
前言:" 今生遇汝,何其幸哉:于我蒙昧之时遇到你,于我大雾初透之时爱上你,于我大智初醒之时沉沦你. " 官网: 介绍 - Vue.js (vuejs.org) 指令与修饰符 创建实 ...
- 基于vue2.0的分页组件开发
今天安排的任务是写基于vue2.0的分页组件,好吧,我一开始是觉得超级简单的,但是越写越写不出来,写的最后乱七八糟的都不知道下句该写什么了,所以重新捋了思路,小结一下- 首先写组件需要考虑: 要从父组 ...
- 采用Vue2.0开发的分页js组件
2017-11-17 19:14:23 基于jQuery的分页插件相信大家伙已经都用过很多了,今天分享一下基于Vue2.0的分页插件pagination.js 由于项目需求,要求使用 Vue2.0 开 ...
- Vue2.0 分页插件pagination使用详细说明
Vue2.0 分页pagination使用 插件下载地址:Vue_Pagination 插件描述:基于jQuery的分页插件大家都用过很多了吧,今天分享一下基于Vue的分页插件pagination.j ...
- Vue2.0+ElementUI+PageHelper实现的表格分页
Vue2.0+ElementUI+PageHelper实现的表格分页 前言 最近做了一些前端的项目,要对表格进行一些分页显示.表格分页的方法有很多,从宏观上来说分为物理分页和逻辑分页,由于逻辑分页(即 ...
- vue2.0实现分页组件
最近使用vue2.0重构项目, 需要实现一个分页的表格, 没有找到合适的组件, 就自己写了一个, 效果如下: 该项目是使用 vue-cli搭建的, 如果你的项目中没有使用webpack,请根据代码自己 ...
- 一款基于vue2.0的分页组件---写在页面内
通过 Vue2.0 实现的分页 可自由设置分页显示的多少.上一页.下一页.省略号等,也可直接输入跳转到的页码进行跳转,分页的样式可自由调整 // 1.页面的 head 部分,需要设计好页面的样式 .p ...
随机推荐
- Kotlin函数使用综述与显式返回类型分析
位置参数与具名参数: 继续接着上一次https://www.cnblogs.com/webor2006/p/11498842.html的方法参数学习,再定义一个函数来说明具名参数的问题: 调用一下,先 ...
- dockerhub下载加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f5dad4ec.m.daocloud.io syste ...
- C#操作域用户ADHelper
在C#中操作域用户,在项目中写的帮助类: using System; using System.Collections.Generic; using System.DirectoryServices; ...
- Echo团队Alpha冲刺 - 总结随笔
班级:软件工程1916|W 作业:项目Alpha冲刺(团队) 团队名称:Echo 作业目标:完成项目Alpha冲刺 评审表:腾讯文档 Alpha冲刺随笔集合 目录 团队博客汇总 项目预期计划及完成情况 ...
- sqlserver2005新特性介绍
1.更强的编程能力-CLR集成 增强了数据库的编程能力,将一些逻辑层(Bll)转移到数据库中,减少了网络中的数据流量,但是增加了服务器cpu的负荷,当我们需要操作大量的数据,但是产生很少的数据,把这种 ...
- NPM——npm|cnpm如何升级
前言 手动更新了node.js版本后,想要升级下npm的版本 步骤 其实无论npm还是cnpm升级的命令都是一样的,除了需要指定包名. 升级npm $ npm install -g npm 查看npm ...
- Vue --- 项目创建
目录 创建Vue项目之前的准备 创建Vue项目 重新构建项目 项目目录介绍 项目的生命周期 Vue文件式组件 配置自定义全局样式 路由逻辑跳转 生命周期钩子 路由传参的两种方式 创建Vue项目之前的准 ...
- C#线程池 ThreadPool
什么是线程池 大家都知道,我们在打开一个应用的时候,操作系统是要做很多的事情的,动态链接.装载.分配虚拟空间.等等等等,其实一个应用的打开同时也伴随着一个进程的建立. 进程的建立是需要时间的,在进程上 ...
- Basic concepts of docker/kubernete/kata-container
Kubereters An open-source system for automating deployment, scaling, and management of containerized ...
- 完美兼容IE10以下所有版本
IE一直是个恶心东西 各种不支持 现在发现了个好东西可以兼容ie10以下所有浏览器 <!--[if lte IE 9]><script>window.location.href ...