vue?el-pagination分頁查詢封裝的示例代碼
需求:因為需要用到表單查詢的地方太多了,所以為了避免每個頁面都寫分頁組件,直接封裝好調(diào)用就完事了,簡簡單單
1.創(chuàng)建Pigination.vue公用組件
<template>
<div :class="{'hidden':hidden}" class="pagination-container">
<el-pagination
:background="background"
:current-page.sync="currentPage"
:page-size.sync="pageSize"
:layout="layout"
:page-sizes="pageSizes"
:total="total"
v-bind="$attrs"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
</div>
</template>
<script>
export default {
name: 'Pagination',
props: {
total: {
required: true,
type: Number
},
// 當(dāng)前頁數(shù)
page: {
type: Number,
default: 1
},
// 限制,一頁多多少行
limit: {
type: Number,
default: 20
},
// 分頁
pageSizes: {
type: Array,
default() {
return [10, 20, 30, 50, 100]
}
},
layout: {
type: String,
default: 'total, sizes, prev, pager, next, jumper'
},
background: {
type: Boolean,
default: true
},
autoScroll: {
type: Boolean,
default: true
},
hidden: {
type: Boolean,
default: false
}
},
computed: {
// 當(dāng)前頁數(shù)
currentPage: {
get() {
return this.page;
},
set(val) {
this.$emit('update:page', val);
}
},
pageSize: {
get() {
return this.limit;
},
set(val) {
this.$emit('update:limit', val);
}
}
},
methods: {
handleSizeChange(val) {
this.$emit('pagination', { page: this.currentPage, size: val });
// if (this.autoScroll) {
// scrollTo(0, 800);
// }
},
handleCurrentChange(val) {
this.$emit('pagination', { page: val, size: this.pageSize });
// if (this.autoScroll) {
// scrollTo(0, 800);
// }
}
}
}
</script>
<style scoped>
.pagination-container {
background: #fff;
padding-top: 10px;
}
.pagination-container.hidden {
display: none;
}
</style>2.需要使用分頁組件的頁面調(diào)用
<template>
<div class="content-box">
<div class="container">
<p>主體頁面 2 - 2</p>
<div class="table-container">
<el-table
ref="Table2"
:data="list"
style="width: 100%;"
show-overflow-tooltip="true"
@selection-change="handleSelectionChange"
border
>
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column label="操作" width="120" align="center" fixed="right"> </el-table-column>
</el-table>
</div>
<!-- 分頁組件 -->
<Pagination :total="total" :page.sync="listQuery.pageNum" :limit.sync="listQuery.pageSize" @pagination="getList"></Pagination>
</div>
</div>
</template>
<script>
import Pagination from '@/components/common/Pagination';
import { testApi } from '@/api/test';
const defaultListQuery = {
pageNum: 1,//給后端的數(shù)據(jù),可以根據(jù)后端需要更改
pageSize: 10,
keyword: ''
};
export default {
data() {
return {
listQuery: Object.assign({}, defaultListQuery),//淺拷貝,引用數(shù)據(jù)類型相互影響
list: [],
total: 0,
listLoading: true,
selectedList: []
};
},
components: {
// 注冊分頁
Pagination
},
created() {
this.getList();
},
methods: {
getList() {
// 獲取數(shù)據(jù)列表
this.listLoading = true;
testApi(this.listQuery).then(res => {
this.listLoading = false;
this.list = res.data.list;
this.total = res.data.total;
});
},
handleSelectionChange(val) {
// 批量選擇行數(shù)
this.selectedList = val;
}
}
};
</script>3.結(jié)果

到此這篇關(guān)于vue el-pagination分頁查詢封裝的文章就介紹到這了,更多相關(guān)vue el-pagination分頁查詢封裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vite項目import.meta.env如何能獲取非VITE開發(fā)的環(huán)境變量
這篇文章主要介紹了vite項目import.meta.env如何能獲取非VITE開發(fā)的環(huán)境變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Vue實現(xiàn)動態(tài)圓環(huán)百分比進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Vue實現(xiàn)動態(tài)圓環(huán)百分比進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
Vue使用axios進(jìn)行數(shù)據(jù)異步交互的方法
大家都知道在Vue里面有兩種出名的插件能夠支持發(fā)起異步數(shù)據(jù)傳輸和接口交互,分別是axios和vue-resource,同時vue更新到2.0之后,宣告不再對vue-resource更新,而是推薦的axios,今天就講一下怎么引入axios,需要的朋友可以參考下2024-01-01
vue-cli3 項目從搭建優(yōu)化到docker部署的方法
這篇文章主要介紹了vue-cli3 項目從搭建優(yōu)化到docker部署的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
vue中this.$message的實現(xiàn)過程詳解
Message在開發(fā)中的使用頻率很高,也算是Element-UI組件庫中比較簡單的,對于感興趣的朋友可以一起探討一下Message組件的實現(xiàn),本文詳細(xì)介紹了vue中this.$message的實現(xiàn)過程,感興趣的同學(xué)可以參考一下2023-04-04
vue-以文件流-blob-的形式-下載-導(dǎo)出文件操作
這篇文章主要介紹了vue-以文件流-blob-的形式-下載-導(dǎo)出文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vue $mount實戰(zhàn)之實現(xiàn)消息彈窗組件
這篇文章主要介紹了Vue $mount實現(xiàn)消息彈窗組件的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04

