element 分页如何使用

Vue.js分页表格组件实现
这个示例展示了如何在Vue.js中使用Element UI库创建一个分页表格,展示姓名、日期和地址信息。通过`handleSizeChange`和`handleCurrentChange`函数处理分页大小和当前页数的变化,实现数据的动态加载。

html

<template>
  <el-table :data="tableData.slice((page - 1) * limit, page * limit)" style="width: 100%">
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>
  <!-- 分页 -->
  <el-pagination
    :current-page="page"
    small
    background
    layout="prev, pager, next"
    :total="total"
    class="mt-4"
    :page-size="limit"
    @size-change="handleSizeChange"
    @current-change="handleCurrentChange"
  />
</template>

js

<script setup>
// 分页
const limit = ref(3); // 每页数据
const page = ref(1); // 默认页数
const total = ref(0); // 总的数据
const tableData = [
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
];
total.value = tableData.length;
// 分页
const handleSizeChange = (val) => {
  limit.value = val;
};
const handleCurrentChange = (val) => {
  page.value = val;
};
</script>

Element UI的分页组件通常是指`el-pagination`,它是一个用于展示数据列表分页效果的工具。在Element UI中,如果想要自定义分页栏的内容或者样式,可以利用内置的`slot`特性。 `slot`是Vue.js的一项功能,允许你在模板组件结构中插入特殊的占位符,开发者可以在子组件中通过插值内容到这些占位符(`slot`)来定制特定区域的行为。对于`el-pagination`,你可以这样做: 1. **默认slot** (`default`): 这是主内容区域,一般显示页码按钮、总页数等。你可以在这里添加自定义的HTML元素,例如: ```html <el-pagination :current-page="currentPage" :total="totalCount"> <!-- 自定义内容 --> <template slot="default"> <span>共{{ totalCount }}条,每页{{ pageSize }}条</span> <!-- 更多/上一页/下一页/最后一页按钮 --> </template> </el-pagination> ``` 2. **prev-text` 和 `next-text` slot: 可以替换左右箭头按钮的文字: ```html <el-pagination ...props... prev-text="上一页" next-text="下一页" slot="prev-text" slot="next-text" ></el-pagination> ``` 3. **page-size-changer` slot: 如果你想改变每页的数量选择器部分,也可以自定义: ```html <el-pagination ...props... slot="page-size-changer" scoped-slot="{ $size: size }"> <el-button v-for="item in sizes" :key="item.value" @click="handleSizeChange(item.value)"> {{ item.text }} </el-button> </el-pagination> ``` 记住,当你使用`slot`时,一定要确保提供的内容不会影响组件的基本功能,并且遵循Element UI的API约定。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值