Element-Plus中表格及分页功能

导入Element-Plus

具体步骤如下:(内容参照官网:安装 | Element Plus

# 选择一个你喜欢的包管理器

# NPM
$ npm install element-plus --save

# Yarn
$ yarn add element-plus

# pnpm
$ pnpm install element-plus

在main.js文件的引入 

// main.ts
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'

const app = createApp(App)

app.use(ElementPlus)
app.mount('#app')

完成以上步骤后即可在官网组件部分查找自己想用的插件进行使用了。 

VUE2版本方式

一、将官网中HTML源码复制到自己的文件中,对其中的参数进行修改。主要修改的是数据的绑定和部分样式的选择。
  <div class="demo-pagination-block">
    <div class="example-demonstration">
      <el-table :data="currentData" style="width: 100%">
        <el-table-column fixed type="index" :index="indexMethod" label="序号" width="50" />
        <el-table-column prop="nativeTip" show-overflow-tooltip label="本国子目" width="100" />
        <el-table-column prop="childrenTip" show-overflow-tooltip label="子目条文" width="100" />
        <el-table-column prop="date" label="数据版本" width="100" />

        <el-table-column fixed="right" label="操作" width="60">
          <template #default="scope">
            <el-button link type="primary" size="small" @click="handleClick(scope.$index)">
              详细
            </el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
<!-- 分页器 -->
    <el-pagination v-model:current-page="searchParams.pagenum" v-model:page-size="searchParams.pagesize" :small="small"
      :disabled="disabled" background layout="total,prev, pager, next, jumper" :total="total"
      @size-change="handleSizeChange" @current-change="handleCurrentChange" />
  </div>

说明:这里我用了首列索引来作为表头元素,但索引值并不是渲染在页面上副本数组中的索引,而是通过该索引计算后的值(即需要渲染在页面上的值),所以通过:index="indexMethod",绑定了indexMethod方法,该方法在methods中定义。

二、将JavaScript中的源码复制后进行修改
	export default {
		data() {
			return {
				searchParams: {
					pagesize: 5, //页面条数
					pagenum: 1, //当前页
				},
				total: 0,
				disabled: false, //是否禁选
				small: true,
				currentData: [], //渲染在页面上的副本
				tableData: [//虚拟数据
						{
						nativeTip: 'Cals',
						childrenTip: 'Tom',
						date: '2016-05-02',

					},
					{
						nativeTip: 'Sdaornia',
						childrenTip: 'Tom',
						date: '2016-05-22',

					},
					{
						nativeTip: 'Csfofif',
						childrenTip: 'Tom',
						date: '2016-05-21',

					}, {
						nativeTip: 'Gsdaw',
						childrenTip: 'Tom',
						date: '2016-05-11',

					}, {
						nativeTip: '2016-05-12',
						childrenTip: 'Tom',
						date: 'California',

					}, {
						nativeTip: 'FedDsa',
						childrenTip: 'Tom',
						date: '2016-05-04',

					},
					{
						nativeTip: 'California',
					
### 使用 Vue3 和 Element Plus 创建带分页功能表格 为了创建一个带有分页功能表格,在 Vue3 中可以利用 `ElTable` 组件来展示数据列表,并通过 `ElPagination` 来处理分页逻辑。下面是一个完整的例子,展示了如何集成这两个组件并使它们协同工作。 #### 安装依赖项 确保已经安装了 Element Plus 库。如果还没有安装,则可以通过 npm 或 yarn 进行安装: ```bash npm install element-plus --save ``` 或者 ```bash yarn add element-plus ``` #### 设置全局配置 在项目入口文件或主要应用文件中设置全局配置以便于统一管理样式和其他参数[^1]。 ```javascript import { createApp } from 'vue'; import App from './App.vue'; import ElementPlus from 'element-plus'; import 'element-plus/lib/theme-chalk/index.css'; const app = createApp(App); app.use(ElementPlus, { size: 'small', zIndex: 3000, }); app.mount('#app'); ``` #### 构建页面结构 接下来构建包含表格分页控件的实际页面布局。这通常是在某个视图组件内完成的。 ```html <template> <div class="table-container"> <!-- 表格 --> <el-table :data="paginatedData" style="width: 100%"> <el-table-column prop="date" label="日期"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> <!-- 分页--> <el-pagination @current-change="handlePageChange" :page-size="pageSize" layout="prev, pager, next" :total="totalItems" ></el-pagination> </div> </template> ``` #### 编写脚本部分 现在编写 JavaScript 部分以控制分页行为以及加载相应页面的数据。 ```javascript <script lang="ts"> import { defineComponent, ref, computed } from 'vue'; export default defineComponent({ name: 'PaginatedTable', setup() { // 假设这是从服务器获取到的所有记录 const allData = Array.from({ length: 100 }).map((_, index) => ({ date: new Date().toISOString(), name: `Name ${index}`, address: `Address ${index}` })); let currentPage = ref(1); // 当前页码,默认第一页 const pageSize = 10; // 每页显示条目数量 // 总共多少条记录 const totalItems = allData.length; // 计算当前应该显示哪一部分的数据 const paginatedData = computed(() => allData.slice( (currentPage.value - 1) * pageSize, currentPage.value * pageSize ) ); function handlePageChange(pageNumber: number): void { currentPage.value = pageNumber; } return { paginatedData, handlePageChange, pageSize, totalItems, }; }, }); </script> ``` 此代码片段实现了基本的功能——它会根据用户的交互动态调整所显示的内容,并允许用户浏览不同页面上的数据集。对于更复杂的应用程序来说,可能还需要考虑异步加载更多数据等功能扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值