vue + element-ui的分页问题实现

下面是“vue + element-ui的分页问题实现”的完整攻略,包含以下几个部分:

  1. 安装element-ui和配置Vue组件
  2. Element-ui分页组件的使用
  3. 分页数据处理及传参方式说明

1. 安装element-ui和配置Vue组件

1.1 安装element-ui

首先需要在你的项目中安装 element-ui,使用如下命令进行安装:

npm install element-ui -S

1.2 引入element-ui组件

在 main.js 文件中,引入 element-ui 并注册组件:

import Vue from 'vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

2. Element-ui分页组件的使用

Element-ui提供了分页组件 el-pagination ,使用 el-pagination 组件需要传递3个参数:当前页码、每页显示数量、数据总量。示例如下:

<template>
  <div>
    <el-pagination
      @current-change="paginationChange"  //监听当前页码改变
      :current-page="currentPage" //当前页码
      :page-size="pageSize" //每页显示数量
      :total="dataTotal"> //数据总量
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
        currentPage: 1, // 当前分页的页码
        pageSize:10, // 每页显示数量
        dataTotal: 100, // 数据总量
    }
  },
  methods: {
    paginationChange(page) { // 监听分页组件当前页码改变的事件
        console.log('当前页码', page)
    }
  }
}
</script>

3. 分页数据处理及传参方式说明

在实际开发过程中,通常需要通过接口获取分页数据并展示在页面中。可以使用 axios 库发起请求获取数据。示例如下:

<template>
  <div>
    // 当前页显示的数据列表
    <ul>
      <li v-for="(item, index) in dataList" :key="index">{{ item }}</li>
    </ul>
    // 分页组件
    <el-pagination
      @current-change="paginationChange"
      :current-page="currentPage"
      :page-size="pageSize"
      :total="dataTotal">
    </el-pagination>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  data() {
    return {
        currentPage: 1,
        pageSize: 10,
        dataTotal: 0,
        dataList: [], // 当前页显示的数据列表
    }
  },
  mounted () {
    this.getData();
  },

  methods: {
        // 获取数据
        getData () {
            axios.get('your/api/url', {
                params: {
                    pageIndex: this.currentPage,
                    pageSize: this.pageSize,
                    // other params
                }
            }).then(res => {
                this.dataList = res.data.dataList;
                this.dataTotal = res.data.total;
            })
        },

        // 分页组件页码改变时触发的方法
        paginationChange(page) {
            this.currentPage = page;
            this.getData();
        }
  }
}
</script>

以上代码中,使用了axios库发起请求获取数据,同时在 current-change 监听事件中更新当前页码和调用获取数据的方法,实现了基本的分页功能。

示例2:使用element-plus分页组件来实现分页功能。

Element-ui现在的维护已经很少,所以现在用element-plus库来来实现分页功能。下面是element-plus分页组件的示例代码:

<template>
  <div>
    <el-table :data="dataList" stripe>
      <el-table-column prop="name" label="Name"></el-table-column>
      <el-table-column prop="age" label="Age"></el-table-column>
      <el-table-column prop="address" label="Address"></el-table-column>
    </el-table>
    <el-pagination
      :page-sizes="[10, 20, 30, 40]"
      :page-size="pageSize"
      :total="dataTotal"
      layout="total, sizes, prev, pager, next, jumper"
      @current-change="paginationChange"
      style="margin-top:10px;">
    </el-pagination>
  </div>
</template>

<script>
import axios from 'axios';
import {ref, onMounted, watch} from 'vue';
import {ElMessage} from 'element-plus';

export default {
  setup () {
    const currentPage = ref(1);
    const pageSize = ref(10);
    const dataList = ref([]);
    const dataTotal = ref(0);

    const getData = () => {
      axios.get('your/api/url', {
        params: {
          pageIndex: currentPage.value,
          pageSize: pageSize.value,
          // other params ...
        }
      })
      .then(res => { 
        dataList.value = res.data.dataList;
        dataTotal.value = res.data.total;
      })
      .catch(err => {
        ElMessage.error('获取数据失败!');
      });
    }

    const paginationChange = (currentPageIndex) => {
      currentPage.value = currentPageIndex;
      getData();
    }

    onMounted(() => {
      getData();
    });

    watch(currentPage, () => {
      getData();
    });

    return {
      currentPage,
      pageSize,
      dataList,
      dataTotal,
      getData,
      paginationChange,
    }
  }
}
</script>

总结:以上就是vue + element-ui分页问题的实现攻略,其中包含了使用element-ui和element-plus两种方式实现分页的示例。如果在实现分页功能时,还遇到其它问题,可以在开发过程中随时查阅element-ui和element-plus的官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue + element-ui的分页问题实现 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • java实现图形化界面计算器

    下面为您详细讲解“Java实现图形化界面计算器”的完整攻略。 1. 准备工作 在开始之前,需要确保您已经正确安装了Java开发环境(JDK),以及Java集成开发工具(IDE),如Eclipse或IntelliJ IDEA。 2. 创建界面 使用Java Swing工具包,可以很容易地创建图形化用户界面。您可以通过创建一个JFrame实例作为主窗口,然后添加…

    Java 2023年5月23日
    00
  • Java实现中国象棋游戏

    Java实现中国象棋游戏攻略 1. 概述 本攻略主要介绍如何使用Java语言实现中国象棋游戏。将分为以下几个部分: 实现界面和交互 实现棋局数据和规则 实现人机交互功能 2. 实现界面和交互 实现游戏界面和交互模块可以使用Swing/AWT的图形界面库,实现如下功能: 显示当前棋局 实现棋子移动交互 实现游戏结束时弹出对话框 下面是一个简单的Swing界面实…

    Java 2023年5月19日
    00
  • springboot项目整合注册功能模块开发实战

    Spring Boot是一个非常流行的Java框架,它可以帮助开发人员快速构建基于Spring的应用程序。在本文中,我们将详细讲解如何使用Spring Boot开发注册功能模块,并提供两个示例来演示如何整合注册功能模块。 开发注册功能模块 在开发注册功能模块之前,我们需要先创建一个Spring Boot项目。可以使用Spring Initializr或者手动…

    Java 2023年5月15日
    00
  • Eclipse中配置Maven的图文教程

    下面是Eclipse中配置Maven的详细攻略: 步骤一:下载安装Maven 首先,我们需要下载并安装Maven,这里我们推荐使用Apache Maven官方网站提供的二进制版本。以下是下载Maven的步骤: 访问官方网站:https://maven.apache.org/download.cgi 选择最新的二进制版本进行下载。 下载完成后,解压到本地某个目…

    Java 2023年5月19日
    00
  • Java8 如何正确高效的使用并行流

    Java8 如何正确高效的使用并行流 什么是并行流 在 Java8 中,我们可以使用 Stream API 提供的 parallel() 方法来创建并行流,将一个大任务划分成多个小任务并行执行。 如何使用并行流 小心使用 并行流虽然可以大大提高执行效率,但是在使用时需要小心,因为它并不是万能的,有时候反而会降低效率。以下是一些使用并行流时需要注意的点: 并行…

    Java 2023年5月18日
    00
  • SpringMVC高级开发功能实现过程解析

    下面我将为您详细讲解“SpringMVC高级开发功能实现过程解析”这个主题的完整攻略。 一、SpringMVC高级开发功能实现的准备工作 在进行SpringMVC高级开发功能的实现之前,首先需要对SpringMVC基础知识掌握熟练,包括控制器的编写、配置、映射、请求参数的获取、转发和重定向等。另外,还需要掌握Spring的Bean管理、AOP、事务处理等相关…

    Java 2023年5月16日
    00
  • SpringBoot如何用java生成静态html

    要用Java生成静态HTML,可以使用SpringBoot框架中的Thymeleaf模板引擎和SpringBoot内置的静态资源处理器,下面是详细的步骤: 1. 导入依赖 将以下依赖加入到pom.xml文件中: <dependencies> <!– Spring Boot Web –> <dependency> &lt…

    Java 2023年5月19日
    00
  • mybatis使用foreach遍历list集合或者array数组方式

    下面我将详细讲解使用MyBatis的foreach遍历list集合或者array数组的方法。 1. foreach遍历list集合 1.1 准备工作 首先,我们需要在mapper接口中定义一个方法,参数为List类型,如下所示: public interface UserMapper { List<User> getUsersByIds(List…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部