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日

相关文章

  • Javac/javap 自带工具简单使用讲解

    Javac和Javap是Java语言中自带的两个工具。Javac能够将Java源代码编译为可执行Java字节代码,而Javap则可以将Java字节码反编译为可读性更高的代码。 使用Javac编译Java源代码 Javac是Java编译器,可将Java源文件编译成字节代码。当然,在使用Javac之前,我们需要先下载并安装Java开发工具包(JDK)。以下是使用…

    Java 2023年5月23日
    00
  • SpringBoot接入轻量级分布式日志框架(GrayLog)的操作方法

    Spring Boot接入轻量级分布式日志框架(GrayLog)的操作方法 GrayLog是一个轻量级的分布式日志框架,可以帮助我们收集、存储和分析应用程序的日志。在本文中,我们将详细讲解如何在Spring Boot应用程序中接入GrayLog。 步骤一:添加依赖 我们需要在pom.xml文件中添加以下依赖项: <dependency> <…

    Java 2023年5月15日
    00
  • Springboot实现多线程注入bean的工具类操作

    下面详细讲解“Springboot实现多线程注入bean的工具类操作”的完整攻略: 一、背景 在使用Springboot开发项目时,我们经常需要使用到多线程。例如,爬虫、定时任务等都需要用到多线程。然而,在多线程环境下使用Spring的bean,需要使用特殊的技巧才能保证线程安全。本文将介绍如何用Springboot实现多线程注入bean的工具类操作。 二、…

    Java 2023年5月26日
    00
  • SpringAop日志找不到方法的处理

    在使用Spring AOP时,有时会出现日志找不到方法的情况。这通常是由于切点表达式不正确或目标方法的访问修饰符不正确导致的。在本文中,我们将提供一个完整的攻略,以解决Spring AOP日志找不到方法的问题,并提供两个示例说明。 1. 确认切点表达式 在使用Spring AOP时,我们需要使用切点表达式来指定要拦截的方法。如果切点表达式不正确,则可能会导致…

    Java 2023年5月18日
    00
  • es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

    下面我来详细讲解”es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解”的完整攻略。 概述 在实现微服务架构中,往往需要采用分布式搜索引擎来实现高可用和高性能的搜索功能,而ES(Elasticsearch)是分布式搜索引擎中最常用的一种。Spring Boot是一种快速开发框架,Spring Cloud是为实现微服…

    Java 2023年5月19日
    00
  • java中复杂查询sql语句该怎么写

    讲解如下。 如何在Java中编写复杂查询SQL语句 在Java中编写复杂查询SQL语句通常有两种方式,分别是使用字符串拼接和使用JPA Criteria Query API。下面将对这两种方法进行详细介绍。 字符串拼接 使用字符串拼接方式,我们可以直接写出SQL语句并将其作为一个字符串传递给JDBC,然后通过执行该语句返回结果集。这种方式的优点是简单易懂,可…

    Java 2023年5月20日
    00
  • iframe的各项参数整理附说明及使用示例

    iframe的各项参数整理附说明及使用示例 iframe是什么? iframe 全称是 Inline Frame,中文翻译为内联框架,是 HTML 的一种内嵌框架技术。通过它可以在网页中嵌入其它网页或者文档,可以说是一个在页面中嵌套显示其他 HTML 页面的容器。HTML 中真正的页面是父页面,iframe 中嵌套的是子页面。在父页面中,可以通过 ifram…

    Java 2023年6月16日
    00
  • Spring Boot2深入分析解决java.lang.ArrayStoreException异常

    Spring Boot2深入分析解决java.lang.ArrayStoreException异常 问题描述 如果在Spring Boot中使用JPA,而你的数据实体类中有一个数组类型的属性,那么在运行时可能会遇到以下错误: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresen…

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