ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue3+ElementPlus 表格分页组件封装

2021-08-02 11:01:57  阅读:1660  来源: 互联网

标签:ElementPlus const String val Vue3 query props 封装 options


第一步新建公共组件pagination.vue

<template>
	<!-- 分页 -->
	<el-pagination
	   background
	  @size-change="handleSizeChange"
	  @current-change="handlePageChange"
	  :page-sizes="[10, 30, 100]"
	  :page-size="pagesize"
	  :layout="layout"
	  :total="total">
	</el-pagination>
</template>

<script>
	export default {
		name:'Pagination',
		 props: {
		  pagesize: [Number, String],//一页多少条
		  currentpage: [Number, String],//当前页
		  total:[Number, String],//总页数
		  options: [Object],  // 分页发生变化赋值给options
		  render: [Function], // 跳转触发的请求
		  layout: {
			type: String,
			default: 'total, sizes, prev, pager, next, jumper'
		  }
		},
		setup(props,context) {
			// 分页导航
			const handlePageChange = (val)=>{
				props.options.page = val;
				props.render();
			}
			//切换分页条数
			const handleSizeChange = (val) =>{
				props.options.limit = val;
				props.render();
			}
			return{
				handlePageChange,
				handleSizeChange
			}
		}
	}
	 
</script>

<style>
</style>

第二步使用

<template>
	<v-pagination
	:pagesize="query.limit"
	:total="pageTotal"
	:options="query"
	:render="getData">
	</v-pagination>
</template>
<script>
import {ref,reactive,getCurrentInstance} from "vue";
import vPagination from '../../components/pagination.vue';
export default {
		components: {
			vPagination,
		},
		setup() {
			const { proxy } = getCurrentInstance(); //获取上下文实例
			const tableData = ref([]),//表格数据
				  pageTotal = ref(0),总条数
				  query = reactive({//配置对应的查询参数
				  		appTimeStart:'',
						appTimeEnd:'',
						page: 1,
						limit:10,//page第几页,limit是一页几个
					});
		 	// 获取表格数据
			const getData = () => {
				 proxy.$request({
				  url: 'api/getList',
				  method: 'POST',
				  data:query
				}).then(res => {
					pageTotal.value = res.count;
					tableData.value = res.data;
				})
			};
			getData();	
			return {
				query,
				shortcuts,
				tableData,
				pageTotal,
				getData
			};		
		}
}
</script>

标签:ElementPlus,const,String,val,Vue3,query,props,封装,options
来源: https://blog.csdn.net/qq_28948031/article/details/119320264

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有