对Ant Design of Vue分页pagination再次进行封装

在这里插入图片描述

pagination.vue(组件页面的内容)

<template>
<!-- 这个是一个分页的组件 -->
<a-pagination
    v-model="current"
    :page-size-options="pageSizeOptions"
    :total="total"
    show-size-changer
    :page-size="pagesize"
    @change="change"
    @showSizeChange="onShowSizeChange"
    :pageSize.sync="currentPageSize"
    :show-total="total => `共 ${total} 条`"
  />
</template>

<script>
export default {
  name: 'my-pagination',
  props: {
    value: { // 当前页
      type: Number,
    },
    hideOnSinglePage: {
      type: Boolean,
      default: false,
    },
    pagesize: {
      type: Number,
      default: 8,
    },
    pageSizeOptions: {
      type: Array,
      default () {
        return [ '8', '16', '24', '32', ]
      },
    },
    showQuickJumper: {
      type: Boolean,
      default: true,
    },
    showSizeChanger: {
      type: Boolean,
      default: true,
    },
    simple: {
      type: Boolean,
      default: false,
    },
    size: {
      type: String,
      default: '',
    },
    total: {
      type: Number,
      default: 1,
    },
  },
  data () {
    return {
      current: this.value,
      currentPageSize: this.pagesize,
    }
  },
  watch: {
    value (val) {
      this.current = val
    },
    pagesize (val) {
      this.currentPageSize = val
    },
  },
  methods: {
    change (pageno, pagesize) { //页码,条数
      this.$emit('change', pageno, pagesize)
    },
    onShowSizeChange (current, size) { //条数变化的回调
      this.$emit('onShowSizeChange', current, size)
    },
  },
}
</script>


使用组件:

<template>
  <div>
	  <a-table :columns="columns" :data-source="data" :pagination="false">
	    <a slot="name" slot-scope="text">{{ text }}</a>
	  </a-table>
	  <!-- 分页组件 -->
	    <my-pagination
	      :total="total"
	      v-model="pageno"
	      :pageSize.sync="pagesize"
	      @change="handlePageChange"
	      @onShowSizeChange="onShowSizeChange"
	    ></my-pagination>
  </div>
</template>
<script>
const columns = [
  {
    title: 'Name',
    dataIndex: 'name',
    key: 'name',
    scopedSlots: { customRender: 'name' },
  },
  {
    title: 'Age',
    dataIndex: 'age',
    key: 'age',
    width: 80,
  },
  {
    title: 'Address',
    dataIndex: 'address',
    key: 'address 1',
    ellipsis: true,
  },
  {
    title: 'Long Column Long Column Long Column',
    dataIndex: 'address',
    key: 'address 2',
    ellipsis: true,
  },
  {
    title: 'Long Column Long Column',
    dataIndex: 'address',
    key: 'address 3',
    ellipsis: true,
  },
  {
    title: 'Long Column',
    dataIndex: 'address',
    key: 'address 4',
    ellipsis: true,
  },
];

const data = [
  {
    key: '1',
    name: 'John Brown',
    age: 32,
    address: 'New York No. 1 Lake Park, New York No. 1 Lake Park',
    tags: ['nice', 'developer'],
  },
  {
    key: '2',
    name: 'Jim Green',
    age: 42,
    address: 'London No. 2 Lake Park, London No. 2 Lake Park',
    tags: ['loser'],
  },
  {
    key: '3',
    name: 'Joe Black',
    age: 32,
    address: 'Sidney No. 1 Lake Park, Sidney No. 1 Lake Park',
    tags: ['cool', 'teacher'],
  },
];
import myPagination from "../../../components/pagination/pagination"; //引入
export default {
  components: {
    myPagination
  },
  data() {
    return {
      total: 0, //定义初始有多少条数据
      pageno: 1, //默认第几页
      pagesize: 8, //一页显示多少条数据
      data,
      columns,
    };
  },
  methods:{
  this.querysyJyz(){  //这个是向后台请求的数据函数
	//自己写执行的内容
 }, 
  handlePageChange(pageno, pagesize) { //点击第几页触发的函数
      this.pageno = pageno;
      this.pagesize = pagesize;
      this.querysyJyz(); //这个是向后台请求的数据函数
    },
   onShowSizeChange(current, size) {  //改变每页显示条目数的函数
      //pagesize 变化的回调
      this.pageno = current;
      this.pagesize = size;
      this.querysyJyz(); //这个是向后台请求的数据函数
    },
  }
};
</script>

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Ant Design of Vue 是一个基于 Vue.js 的 UI 组件库,它提供了丰富的组件和样式,可以帮助开发者快速构建美观、易用的 Web 应用程序。其中,Ant Design of Vue 表单封装是一个非常实用的功能,它可以帮助开发者快速构建表单,包括表单验证、表单布局、表单提交等功能,大大提高了开发效率。同时,Ant Design of Vue 表单封装还支持自定义表单组件,开发者可以根据自己的需求定制表单组件,满足不同的业务需求。总之,Ant Design of Vue 表单封装是一个非常实用的功能,可以帮助开发者快速构建高质量的 Web 应用程序。 ### 回答2: Ant Design of Vue是一个基于Vue.js的UI组件库,它提供了一系列优雅且易用的组件,包含有丰富的UI组件、样式和交互行为,可以帮助我们快速构建漂亮而且功能强大的Web应用。 其中,表单是Ant Design of Vue中最核心、最常用的组件之一,因为表单是我们在前端开发中最常用的交互方式。Ant Design of Vue中针对表单封装的功能也非常丰富,主要包括以下几个方面: 1. 表单控件:Ant Design of Vue提供了一系列的表单控件,包括输入框、选择器、日期选择器、开关、单选框、复选框等,这些表单控件都有丰富的属性和事件可以自由控制,可以满足我们在不同的场景下的需求。 2. 表单校验:Ant Design of Vue提供了非常强大的表单校验功能,可以对表单进行必填、数据格式、长度等多个方面的校验,还可以自定义校验规则,方便我们在项目中灵活运用。 3. 表单布局:Ant Design of Vue提供了多种表单布局,包括水平布局、垂直布局、行内布局等,可以根据不同的需求选择不同的布局方式,在表单的美观性、可读性等方面都有很好的表现。 4. 表单数据处理:Ant Design of Vue提供了非常便捷的表单数据处理方式,可以将表单中的数据进行组装、序列化、反序列化等操作,快捷方便。 总之,Ant Design of Vue提供的表单封装功能非常丰富、易用,在我们的前端开发中应用广泛,可以大大提高我们的开发效率、代码质量和用户体验。 ### 回答3: Ant Design of Vue 是一个企业级 UI 设计语言和 Vue.js 的实现版本,其中包括了许多常用的组件,如表格、表单、对话框等。 在 Ant Design of Vue 中,表单是一个非常常用和重要的组件,用于网站的交互和数据处理。Ant Design of Vue 中的表单组件可以通过简单的代码来实现各种表单元素的布局、样式、校验和提交等功能,同时具有良好的用户体验和可维护性。 Ant Design of Vue 的表单封装主要包括三个部分:表单组件、表单项组件和校验规则。 表单组件是 Ant Design of Vue 中的一个顶层组件,用于包装整个表单。通过定义 props 来配置表单的属性和事件,例如表单的布局方式、表单项组件的数据和样式绑定、表单的提交和重置等。 表单项组件是表单中的一个子组件,用于表示一个表单的输入项,如输入框、单选框、复选框和下拉框等。通过定义 props 和 v-model 来绑定表单项和表单数据,并设置相应的属性和事件来实现校验、关联、联动和交互等功能。 校验规则是 Ant Design of Vue 中用于校验表单项数据合法性的组件。通过定义 rules 属性来配置校验规则,例如数据格式、数据类型、数据范围和数据比较等。当表单提交或失焦时,校验规则会自动进行校验,并在校验不通过时提示相应的错误信息。 总体来说,Ant Design of Vue 中的表单封装具有很高的可用性和可扩展性,能够满足各种不同的业务需求,并且对于前端开发人员来说也十分友好和方便。如果您需要构建一个高品质的企业级表单,那么 Ant Design of Vue 的表单封装一定是您的不二之选。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值