vue使用element-ui 实现自定义分页

news/2024/7/10 0:30:17 标签: 前端, vue

element-ui文档截图,plus大同小异。
在这里插入图片描述
可以通过插槽实现自定义的分页。在layout里面进行配置。
在这里插入图片描述

全部代码

//page.js
export default {
	name:Cuspage,
	props:{
		total:Number,
	},
	data(){
		return {
			currentPage:1,
			pageSize:10,
		}
	}
	methods: {
		setslot (h) {
			return(
				<div class="cusPage"<span on-click={this.toBegin}>首页く/span>
					<span on-click={this.toPre}>上一页く/Span>
					<span on-click={this.tovext}>下一页</span>
					<span on-click={this.toEnd}>未页く/span>
					<span>{this.currentPage}/{this.alltotal}</span>
				</div>
			)
		 },
		 toEnd(){
		 	this.$emit('current-change',this.allPage);
		 	this.currentPage = this.allPage;
		 },
		 toBegin() {
		 	this.$emit('current-change',1);
		 	this.currentPage = 1;
		 }
		 toNext() {
		 	ifthis.$refs.cusPage){
		 		this.$refs.cusPage.next()
		 	}
		 },
		  toPre() {
		 	ifthis.$refs.cusPage){
		 		this.$refs.cusPage.prev()
		 	}
		 },
		 currentChange(val) {
		  this.currenPage = val;
		  this.$emit('current-change',val);
	     },
	     sizeChange (val) {
		  this.pageSize= val;
		  this.$emit('size-change',val);
	     }
	   },
	 computed:{
	 //计算出当前的总页数
	  allPage() {
	    return Math.max(1,Math.ceil(Number(this.total)/Number(this.pageSize))
	  }
	 },
	 render (h) {
		const pageprops =
			props: {
				layout: 'total, slot,sizes, prev, pager,'
				pagesize: this-pagesize, 
				currentPage: this.currentPage, 
				total: 100,
			}
		}
		return (
			<el-pagination
				class="page-custome"
				{...pageprops} 
				ref-"cusPage" 
				onCurrent-change={(v)=>{this.currentChange(v)}} 
				onSize-change={(v)=>{this.sizeChange (v)}}
				onPrev-click={(v) =>{this.PrevChange (v)}}
				onNext-change={(v)=>{this.NextChange (v)}}
				<template slot="default">
				{this.setslot(h)}
				</template>
			</el-pagination>
		  )
	   }
}


组件内使用

<cus-page :total="100" @current-change="currentChange" ...></cus-page>

实现效果图

在这里插入图片描述
里面具体的逻辑可以自己实现下。


http://www.niftyadmin.cn/n/5444947.html

相关文章

市场复盘总结 20240322

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 36% 最常用…

用 Appium 搭建自动化测试环境

基于Appium框架的自动化开发环境搭建 万事开头难&#xff0c;自动化开发环境的搭建会比较麻烦。以下详细讲解如何在mac os操作系统下&#xff0c;搭建基于Appium的自动化开发环境。 1、Android开发环境搭建&#xff08;JDK/SDK/AndroidStudio&#xff09;请自行百度,所需安装包…

Python Flask 表单的使用

新建templ;ates/index.html 内容如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <form action"">账号&#xff1a;<input …

2024年新兴技术趋势:万事达卡报告揭示生成式AI对商业的影响

2024年新兴技术趋势&#xff1a;万事达卡报告揭示生成式AI对商业的影响 万事达卡的《2024年新兴技术趋势》报告为我们提供了对未来商业的深刻洞察&#xff0c;特别关注生成式AI在零售和旅游领域的变革性影响。这项全面的研究揭示了人工智能、计算能力和数据技术的融合不仅正在…

《操作系统真象还原》记录全流程——第三章01

提示&#xff1a; 写这篇文章的目的是只是激励自己完成这本书的linux内核项目&#xff0c;本文不够细致。 指路大佬&#xff1a;操作系统真象还原 自制操作系统_Love 6的博客-CSDN博客 指路大佬&#xff1a; 用《操作系统真象还原》写一个操作系统 第三章 完善MBR_哔哩哔哩_…

千帆AppBuilder开发参考-应用API调用说明

介绍 百度智能云千帆AppBuilder平台提供了AppBuilder-SDK&#xff0c;开发者可使用SDK&#xff0c;快捷的开发功能&#xff0c;提升开发效率。 AppBuilder-SDK提供了完整的AI原生应用开发套件&#xff0c;包括丰富的开发组件和应用示例代码。开发组件包括大模型组件、AI能力组…

学习vue3第七节其他常用api

本文主要介绍以下api readonly()、isReadonly()、shallowReadonly()、isProxy()、toRaw()、markRaw() 1、readonly() 接受一个对象 (不论是响应式还是普通的) 或是一个 ref&#xff0c;返回一个原值的只读代理 只读代理是深层的&#xff1a;对任何嵌套属性的访问都将是只读的…

【史上最全面esp32教程】pwm脉宽调制技术

文章目录 前言一、PWM脉宽调制技术介绍二、pwm的使用2.1 pwm初始化2.2 设置占空比 三、简单的pwm总结 前言 ESP32是一款功能强大的开发板&#xff0c;广泛应用于物联网和嵌入式系统开发。其中&#xff0c;PWM&#xff08;Pulse Width Modulation&#xff09;脉宽调制技术是ESP…