uni-app 有没有表格带分页的插件

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app 有没有表格带分页的插件

有没有表格带分页的插件

开发环境 版本号 项目创建方式
1 回复

在uni-app中,虽然官方没有直接提供表格带分页的插件,但你可以通过组合一些现有的组件和逻辑来实现这一功能。以下是一个简单的实现思路和代码示例,帮助你快速上手。

实现思路

  1. 使用第三方UI组件库:可以选择如uView、Vant Weapp等uni-app支持的UI组件库,它们通常包含表格和分页组件。
  2. 数据分页逻辑:在获取数据时,根据当前页码和每页数量来请求数据,并在前端进行分页展示。

代码示例

以下是一个使用uView UI组件库实现的表格带分页的示例:

  1. 安装uView(如果尚未安装):
npm install uview-ui --save
  1. main.js中引入uView
import Vue from 'vue'
import App from './App'
import uView from 'uview-ui'

Vue.use(uView)

new Vue({
    ...App
})
  1. 页面代码(假设在pages/index/index.vue中):
<template>
    <view>
        <u-table :border="true">
            <u-table-column prop="name" label="Name"></u-table-column>
            <u-table-column prop="age" label="Age"></u-table-column>
            <!-- 添加更多列 -->
        </u-table>
        <u-pagination
            :current="currentPage"
            :total="total"
            :page-size="pageSize"
            @change="handlePageChange"
        ></u-pagination>
    </view>
</template>

<script>
export default {
    data() {
        return {
            list: [],
            currentPage: 1,
            pageSize: 10,
            total: 0
        }
    },
    methods: {
        fetchData(page, size) {
            // 模拟数据请求
            return new Promise((resolve) => {
                setTimeout(() => {
                    const data = Array.from({ length: size }, (_, i) => ({
                        name: `Name ${(page - 1) * size + i + 1}`,
                        age: Math.floor(Math.random() * 100)
                    }));
                    resolve(data);
                }, 1000);
            });
        },
        async handlePageChange(page) {
            this.currentPage = page;
            const data = await this.fetchData(page, this.pageSize);
            this.list = data;
            // 假设total已经在首次请求时获取到,这里简化为数据长度模拟
            this.total = (page - 1) * this.pageSize + data.length; // 仅为示例,实际应根据后端返回的总数设置
        },
        async mounted() {
            await this.handlePageChange(this.currentPage);
        }
    }
}
</script>

说明

  • u-tableu-pagination是uView提供的表格和分页组件。
  • fetchData方法模拟了一个异步数据请求,你可以替换为实际的API调用。
  • handlePageChange方法在页码变化时重新请求数据并更新列表。
  • mounted生命周期钩子中初始化了第一页的数据。

这样,你就可以在uni-app中实现一个带有分页功能的表格了。

回到顶部