首页 > 其他 > 详细

15 自定义分页pagination全局组件

时间:2020-06-15 22:42:47      阅读:55      评论:0      收藏:0      [点我收藏+]

1.Pagination.vue

<template>
  <el-pagination
    @size-change="handleSizeChange"
    @current-change="handleCurrentChange"
    background
    :current-page="paginationData.currentPage"
    :page-sizes="paginationData.pageSizes"
    :page-size="paginationData.PageSize"
    layout="total, sizes, prev, pager, next, jumper"
    :total="paginationData.total"
  ></el-pagination>
</template>
<script>
export default {
  name: "Pagination",
  props:{
    paginationData:{
      type:Object,
      required:true
    }
  },
  data() {
    return {
     
    };
  },
  methods: {
    handleSizeChange(val) {
      this.paginationData.pageSize = val;
    },
    handleCurrentChange(val) {
      this.paginationData.currentPage = val;
    }
  }
};
</script>
<style lang="scss" scoped>
</style>

2.index.js

import Pagination from ‘./Pagination‘
const compName = Pagination.name

export default {
  install(Vue) {
    Vue.component(compName, Pagination)
  }
}

3.注册

import Pagination from ‘./components/globalComponents/pagination‘
Vue.use(Pagination)

4.使用

  
 <el-table
      v-if="newList.length!==0"
      :data="computedNewsList"
 
    >
。。。


<pagination :pagination-data="paginationData"></pagination> // el-table里面data传给全局Pagnation组件的props值 paginationData: { total: 0, currentPage: 1, pageSize: 3, pageSizes: [3, 6, 9] },

 computed: {
    computedNewsList() {
      // paginationData对象里面任何一个数据发生变化,都有触发
      return this.newList.slice(
        (this.paginationData.currentPage - 1) * this.paginationData.pageSize,
        this.paginationData.currentPage * this.paginationData.pageSize
      );
    }
  },
 

 

15 自定义分页pagination全局组件

原文:https://www.cnblogs.com/xiaoliziaaa/p/13137826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!