vue+iview分页组件的封装

yizhihongxing

下面将详细讲解vue+iview分页组件的封装。

一、分页组件介绍

在前端开发中,经常需要用到分页组件,用于将数据分页展示。iview是一套基于 Vue.js 的开源 UI 组件库,内置了丰富的组件,包括分页组件。iview分页组件具有易用、美观、可定制性强等优点。因此,本文以iview分页组件为例,介绍Vue+iview分页组件的封装。

二、组件封装

1.安装iview和vue分页插件

首先需要安装iview和vue分页插件,可以通过以下命令进行安装:

npm install iview --save
npm install vue-pagination-2 --save

2.封装分页组件

接下来是最重要的封装分页组件的过程。在src/components下新建 Pagination.vue 文件,代码如下:

<template>
  <div>
    <div class="custom-pagination">
      <Page :total="total" :current="current" :page-size="pageSize" @on-change="handleChange" :show-total="true" show-elevator show-sizer></Page>
    </div>
    <div class="custom-total">共{{ total }}条</div>
  </div>
</template>

<script>
import Page from 'iview/src/components/page';
import vuePagination from 'vue-pagination-2';

export default {
  name: 'Pagination',
  components: {
    Page,
    vuePagination
  },
  props: {
    total: {
      type: Number,
      required: true
    },
    pageSize: {
      type: Number,
      required: true
    },
    current: {
      type: Number,
      required: true
    }
  },
  methods: {
    handleChange(currentPage) {
      this.$emit('change', currentPage);
      this.$emit('update:current', currentPage);
    }
  }
};
</script>

<style>
.custom-pagination {
  text-align: center;
  margin-top: 20px;
}

.custom-total {
  text-align: center;
  margin-top: 10px;
}
</style>

代码中,我们引入了iview的Page组件和vue-pagination-2插件;定义了分页组件的props参数,包括total、pageSize和current;通过@on-change事件监听分页页码的变化,从而达到翻页的效果;最后通过emit事件将当前页传递给父组件,也可以自行选择更新组件内部的current参数。

3.在父组件中使用分页组件

父组件中引入Pagination组件,并在template中进行使用。示例如下:

<template>
  <div>
    <Pagination :total="total" :page-size="10" :current.sync="currentPage" @change="refreshList"></Pagination>
    <Table :data="list" border stripe>
      <Table-column title="姓名" key="name"></Table-column>
      <Table-column title="年龄" key="age"></Table-column>
    </Table>
  </div>
</template>

<script>
import Pagination from '@/components/Pagination.vue';

export default {
  name: 'List',
  components: {
    Pagination
  },
  data() {
    return {
      total: 50,
      currentPage: 1,
      list: []
    };
  },
  methods: {
    refreshList(currentPage) {
      this.currentPage = currentPage;
      //调用接口获取数据
      //此处略去接口请求代码
      this.list = response.data.list;
    }
  }
};
</script>

代码中,我们引入了Pagination组件,并传入了total、pageSize和current三个props参数;并在refreshList方法中调用接口,获取对应的数据,从而完成了分页展示的过程。同时,由于currentPage被设置为.sync修饰符,因此,分页组件的页码变化会自动更新到父组件中的currentPage参数上,实现了分页组件和父组件的数据交互。

三、总结

至此,vue+iview分页组件的封装过程完成。本文以iview分页组件为例,介绍了Vue+iview分页组件的封装方式,并给出了完整的代码示例。此外,iview分页组件的风格可以通过自定义样式进行修改,以适应各自项目的需求。

参考文献:
1. iView - 一套基于 Vue.js 的高质量 UI 组件库 http://v1.iviewui.com/
2. vue-pagination-2分页插件 https://github.com/matfish2/vue-pagination-2

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue+iview分页组件的封装 - Python技术站

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

相关文章

  • Android自定义控件之自定义属性(二)

    Android自定义控件之自定义属性(二)主要涉及到在自定义控件中自定义属性的使用方法,其完整攻略如下: 1. 前言 在Android中,自定义View是非常常见的需求,而自定义控件之一的自定义属性,也是比较重要的一部分,通过自定义属性,我们可以方便地在XML文件中设置控件的属性,这样可以大大提高我们的开发效率。在之前的博客中,我们已经学习了如何自定义属性,…

    other 2023年6月25日
    00
  • C语言基础 strlen 函数

    C语言基础 strlen 函数 简介 strlen函数是C语言中非常常用的字符串函数之一,用于计算一个字符串的长度。其原型为: size_t strlen(const char *str); 函数原型的返回值类型为 size_t, size_t 是一个无符号整数类型,其大小通常与 unsigned int 相同,用于保证变量的值为正数。函数的参数是一个指向字…

    other 2023年6月27日
    00
  • Win11右键上下文菜单存在BUG 微软将着手进行修复

    Win11右键上下文菜单存在BUG 最近Win11的用户反映了一个问题,就是在某些情况下右键菜单会出现异常,如菜单项重复、图标错误等。经过微软的证实,这确实是Win11系统的一个BUG。 修复方法 目前微软正在积极开展修复工作,预计最新的更新会在近日内发布。用户可以及时更新系统补丁来解决这个问题。 另外,为了避免这个问题再次出现,用户也可以尝试以下的一些方法…

    other 2023年6月27日
    00
  • Java设计模式之模板模式(Template模式)介绍

    Java设计模式之模板模式(Template模式)介绍 什么是模板模式 模板模式是一种行为设计模式,它允许你定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板模式使得子类可以不改变算法的结构即可重新定义该算法的某些特定步骤。 在模板模式的实现中,一般由一个抽象类定义了算法的基本结构,具体的实现则由具体的子类来负责实现,其中抽象类中可能会有一些钩子方法…

    other 2023年6月26日
    00
  • 开始→运行(cmd)命令大全第2/2页

    接下来我将详细讲解“开始→运行(cmd)命令大全第2/2页”的完整攻略。 1. 打开命令提示符界面 首先,我们需要打开命令提示符界面。可以通过以下步骤打开: 点击“开始”按钮,在开始菜单中找到“运行”选项并点击; 在“运行”对话框中输入“cmd”命令,并点击“确定”按钮。 这样就可以打开命令提示符界面了。 2. 查看命令列表 在命令提示符界面中,我们可以输入…

    other 2023年6月26日
    00
  • Springboot yml如何获取系统环境变量的值

    在Spring Boot yml中获取系统环境变量的值,可以通过${变量名}语法解决。具体步骤如下: 在 yml 文件中定义需要用到的变量名,例如: yaml server: port: ${SERVER_PORT:8080} 上述代码中,${SERVER_PORT:8080} 表示获取系统环境变量 SERVER_PORT 的值,如果该变量不存在则默认值为 …

    other 2023年6月27日
    00
  • java Nio使用NioSocket客户端与服务端交互实现方式

    下面是Java NIO使用NioSocket客户端与服务端交互的完整攻略: 1. NioSocket客户端与服务端交互实现方式 Java NIO是Java SE 1.4版本提供了基于缓冲区、非阻塞IO的IO操作API,支持高并发、高效率的IO操作。在NIO中,核心的概念有缓冲区、通道、选择器。 要建立客户端与服务端的交互,需要使用SocketChannel类…

    other 2023年6月25日
    00
  • 解析ABP框架领域层中的实体类与仓储类

    解析ABP框架领域层中的实体类与仓储类,需要理解ABP框架的领域驱动设计思想和DDD实践中的实体类和仓储类的定义与使用。 什么是实体类? 在ABP框架中,实体类是指具有唯一标识符、可变性和生命周期属性的对象。理解实体类的定义对于正确使用ABP框架中的仓储类至关重要。以下是一个示例: public class Book : Entity<int> …

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