Vue练习3:组件开发3(页面切换)

预览

———————————————————————————————————————————

组件文档

Pager组件

 

属性

属性名含义类型必填默认值
current当前页码(总数据量/单页容量)Number1
total总数据量Number0
limit单页容量Number10
visibleNumber可见页码数Number10

事件

事件名含义事件参数参数类型
pageChange($event)页码变化event为当前页码新的页码Number

功能

        首页跳转,单页跳转,末页跳转

        每次必显示可见页码数

        组件第一层未设置样式(pager-container)

———————————————————————————————————————————

注释代码

<template><div class="pager-container" v-if="pageNumber > 1">    //只有页面大于1才显示页码<a @click="handleClick(1)" :class="{ disabled: current === 1}">|&lt;&lt;</a>  <a @click="handleClick(current - 1)" :class="{ disabled: current === 1}">&lt;&lt;</a><a @click="handleClick(item)" v-for="(item,i) in numbers" :key="i" :class="{ active: item === current }">{{ item }}</a><a @click="handleClick(current + 1)" :class="{ disabled: current === pageNumber }">&gt;&gt;</a><a @click="handleClick(pageNumber)" :class="{ disabled: current === pageNumber }">&gt;&gt;|</a></div>
</template><script>
export default {props:{        //可传参数current:{type:Number,default: 1,},total:{type:Number,default: 0,},limit:{type:Number,default: 10,},visibleNumber:{type:Number,default: 10,},},computed:{pageNumber(){return Math.ceil(this.total / this.limit);},visibleMin(){let min = this.current - Math.floor(this.visibleNumber / 2);if(min<1){min = 1;}return min;},visibleMax(){let max = this.visibleMin + this.visibleNumber - 1;if(max > this.pageNumber){max = this.pageNumber;}return max;},numbers(){let nums = [];let numsLength = this.visibleMin;if((this.visibleMax - this.visibleMin) < this.visibleNumber - 1){numsLength = this.visibleMax - this.visibleNumber + 1;}for(let i = numsLength; i<= this.visibleMax;i++){nums.push(i);}return nums;}},methods:{handleClick(newPage){    //页码处理if(newPage < 1){newPage = 1;}else if( newPage > this.pageNumber){newPage = this.pageNumber}this.$emit("pageChange",newPage) //组件向外传递}}
}
</script><style lang="less" scoped>    //样式
@import "~@/styles/var.less";    //引入主题.pager-container{display: flex;justify-content: center;margin: 20px 0;cursor: pointer;a{color: @danger;margin:0 6px;&.disabled {color: blue;cursor: not-allowed;}&.active{color: green;font-weight: bold;cursor: text;}}}
</style>

———————————————————————————————————————————

可编译代码

<template><div class="pager-container" v-if="pageNumber > 1"><a @click="handleClick(1)" :class="{ disabled: current === 1}">|&lt;&lt;</a><a @click="handleClick(current - 1)" :class="{ disabled: current === 1}">&lt;&lt;</a><a @click="handleClick(item)" v-for="(item,i) in numbers" :key="i" :class="{ active: item === current }">{{ item }}</a><a @click="handleClick(current + 1)" :class="{ disabled: current === pageNumber }">&gt;&gt;</a><a @click="handleClick(pageNumber)" :class="{ disabled: current === pageNumber }">&gt;&gt;|</a></div>
</template><script>
export default {props:{current:{type:Number,default: 1,},total:{type:Number,default: 0,},limit:{type:Number,default: 10,},visibleNumber:{type:Number,default: 10,},},computed:{pageNumber(){return Math.ceil(this.total / this.limit);},visibleMin(){let min = this.current - Math.floor(this.visibleNumber / 2);if(min<1){min = 1;}return min;},visibleMax(){let max = this.visibleMin + this.visibleNumber - 1;if(max > this.pageNumber){max = this.pageNumber;}return max;},numbers(){let nums = [];let numsLength = this.visibleMin;if((this.visibleMax - this.visibleMin) < this.visibleNumber - 1){numsLength = this.visibleMax - this.visibleNumber + 1;}for(let i = numsLength; i<= this.visibleMax;i++){nums.push(i);}return nums;}},methods:{handleClick(newPage){if(newPage < 1){newPage = 1;}else if( newPage > this.pageNumber){newPage = this.pageNumber}this.$emit("pageChange",newPage)}}
}
</script><style lang="less" scoped>
@import "~@/styles/var.less";.pager-container{display: flex;justify-content: center;margin: 20px 0;cursor: pointer;a{color: @danger;margin:0 6px;&.disabled {color: blue;cursor: not-allowed;}&.active{color: green;font-weight: bold;cursor: text;}}}
</style>

———————————————————————————————————————————

感谢@初琰丶提供的封面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/472311.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《剑指 Offer》专项突破版 - 面试题 48 : 序列化和反序列化二叉树(C++ 实现)

目录 前言 一、序列化二叉树 二、反序列化二叉树 前言 题目链接&#xff1a;LCR 048. 二叉树的序列化与反序列化 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 请设计一个算法将二叉树序列化成一个字符串&#xff0c;并能将该字符串反序列化出原来的二叉树。…

Python二级考试笔记

Python二级考试笔记【源源老师】 01. 字符串 1. 常规功能合集 字符串本身有一些功能&#xff0c;有些之前运用过&#xff0c;这里总结如下&#xff1a; # 功能一&#xff1a;判断字符串类型 print(type("Hello")) print(str(123)) # 转换# 功能二&#xff1a;连…

c入门第十八篇——支持学生数的动态增长(链表,指针的典型应用)

数组最大的问题&#xff0c;就是不支持动态的扩缩容&#xff0c;它是静态内存分配的&#xff0c;一旦分配完成&#xff0c;其容量是固定的。为了支持学生的动态增长&#xff0c;这里可以引入链表。 链表 在C语言中&#xff0c;链表是一种常用的数据结构&#xff0c;它由一系列…

“分布式透明化”在杭州银行核心系统上线之思考

导读 随着金融行业数字化转型的需求&#xff0c;银行核心系统的升级改造成为重要议题。杭州银行成功上线以 TiDB 为底层数据库的新一代核心业务系统&#xff0c;该实践采用应用与基础设施解耦、分布式透明化的设计开发理念&#xff0c;推动银行核心系统的整体升级。 本文聚焦…

C语言从零实现贪吃蛇小游戏

制作不易&#xff0c;点赞关注一下呗&#xff01;&#xff01;&#xff01; 文章目录 前言一. 技术要点二、WIN32API介绍三、贪吃蛇游戏设计与分析 1.游戏开始前的初始化 2.游戏运行的逻辑 总结 前言 当我们掌握链表这样的数据结构之后&#xff0c;我们就可以用它来…

【数据结构】16 二叉树的定义,性质,存储结构(以及先序、后序、中序遍历)

二叉树 一个二叉树是一个有穷的结点集合。 它是由根节点和称为其左子树和右子树的两个不相交的二叉树组成的。 二叉树可具有以下5种形态。 性质 一个二叉树第i层的最大结点数为 2 i − 1 2^{i-1} 2i−1, i ≥ 1 i \geq 1 i≥1 每层最大结点可以对应完美二叉树&#xff08;…

Linux:docker搭建redis集群(3主3从扩容缩容 哈希槽分配)

操作系统&#xff1a;centos7 docker-ce版本&#xff1a;24.0.7 1.准备redis镜像 我这里使用redis 6.0.8 镜像进行操作&#xff0c;如果你也需要镜像&#xff0c;在网络正常情况下直接使用 docker pull redis:6.0.8 即可进行下载&#xff0c;如果你没配置国内加速器&#x…

相机图像质量研究(22)常见问题总结:CMOS期间对成像的影响--光学串扰

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

机器人专题:我国机器人产业园区发展现状、问题、经验及建议

今天分享的是机器人系列深度研究报告&#xff1a;《机器人专题&#xff1a;我国机器人产业园区发展现状、问题、经验及建议》。 &#xff08;报告出品方&#xff1a;赛迪研究院&#xff09; 报告共计&#xff1a;26页 机器人作为推动工业化发展和数字中国建设的重要工具&…

LEETCODE 69. x 的平方根

class Solution { public:int mySqrt(int x) {int left0;int rightx;int midleft(right-left)/2;int ans-1;while(left<right){midleft(right-left)/2;if((long long)mid*mid<x){ansmid;leftmid1;}else{rightmid-1;}}return ans;} };*(long long)

js示例1(图片轮播)

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>图片轮播</title><style>#box{ /*给图片盒子创建样式*/ width : 400px;height : 400px; margin: 0 auto; position: rela…

Qlik Sense : 条形图

条形图 “条形图适合比较多个值。维度轴显示所比较的类别条目&#xff0c;度量轴显示每个类别条目的值。” Qlik Sense中的条形图是一种数据可视化工具&#xff0c;用于展示不同类别或维度之间的比较。它通过水平或垂直的条形表示数据&#xff0c;并根据数值的大小进行排序。…