vue3封裝el-pagination分頁組件的完整代碼
更新時間:2024年02月26日 09:47:02 作者:PXY_J
這篇文章主要介紹了vue3封裝el-pagination分頁組件的完整代碼,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
1、效果如圖:

2、分頁組件代碼:
<template>
<div class="paging">
<el-config-provider :locale="zhCn">
<el-pagination
v-model:current-page="page.currentPage"
v-model:page-size="page.pageSize"
:background="page.background"
:layout="page.layout"
:total="page.total"
@size-change="page.handleSizeChange"
@current-change="page.handleCurrentChange"
/>
</el-config-provider>
</div>
</template>
<script setup>
import { ElConfigProvider } from 'element-plus'
import zhCn from 'element-plus/es/locale/lang/zh-cn';
zhCn.el.pagination.goto = "到第"
const props = defineProps({
total: {
required: true,
type: Number,
default: 300
},
// 當(dāng)前頁數(shù)
currentPage: {
type: Number,
default: 1
},
// 分頁
pageSize: {
type: Array,
default: () => {
return [10, 20, 30, 50, 100]
}
},
limit: {
type: Number,
default: 10
},
layout: {
type: String,
default: 'total, sizes, prev, pager, next, jumper'
},
background: {
type: Boolean,
default: () => {
return true
},
},
});
const emit = defineEmits();
const currentPage = computed({
get() {
return props.currentPage
},
set(val) {
emit('update:currentPage', val)
}
})
const pageSize = computed({
get() {
return props.limit
},
set(val) {
emit('update:limit', val)
}
})
const page = reactive({
background:props.background,
currentPage:props.currentPage,
pageSize:props.pageSize[0],
layout:props.layout,
total:props.total,
handleSizeChange:(val)=>{
console.log(`${val} items per page`)
emit('handleSizeChange', val);
},
handleCurrentChange:(val)=>{
console.log(`current page: ${val}`)
emit('handleCurrentChange', val);
}
});
</script>
<style lang="scss" scoped>
</style>3、使用代碼:
**結(jié)構(gòu):**
<template>
<Paging
:current-page="page.currentPage"
:page-size="page.pageSize"
:background="page.background"
:layout="page.layout"
:total="page.total"
:limit="page.limit"
@handleSizeChange="page.handleSizeChange"
@handleCurrentChange="page.handleCurrentChange"
></Paging>
</template>
**js:**
<script setup>
import Paging from "@/components/paging";//引入分頁組件
const page = reactive({
layout:'prev, pager, next, jumper',
currentPage:1,
limit:10,
total:300,
handleSizeChange:(val)=>{
page.pageSize = val
},
handleCurrentChange:(val)=>{
page.currentPage = val
}
})
</script>到此這篇關(guān)于vue3封裝el-pagination分頁組件的文章就介紹到這了,更多相關(guān)vue3封裝el-pagination內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
element-ui中el-upload多文件一次性上傳的實現(xiàn)
這篇文章主要介紹了element-ui中el-upload多文件一次性上傳的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

