欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue?el-pagination分頁查詢封裝的示例代碼

 更新時間:2023年06月29日 10:36:35   作者:請叫我歐皇i  
本文主要介紹了vue?el-pagination分頁查詢封裝的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

需求:因為需要用到表單查詢的地方太多了,所以為了避免每個頁面都寫分頁組件,直接封裝好調(diào)用就完事了,簡簡單單

1.創(chuàng)建Pigination.vue公用組件

<template>
  <div :class="{'hidden':hidden}" class="pagination-container">
    <el-pagination
      :background="background"
      :current-page.sync="currentPage"
      :page-size.sync="pageSize"
      :layout="layout"
      :page-sizes="pageSizes"
      :total="total"
      v-bind="$attrs"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
    ></el-pagination>
  </div>
</template>
<script>
export default {
  name: 'Pagination',
  props: {
    total: {
      required: true,
      type: Number
    },
    // 當前頁數(shù)
    page: {
      type: Number,
      default: 1
    },
    // 限制,一頁多多少行
    limit: {
      type: Number,
      default: 20
    },
    // 分頁
    pageSizes: {
      type: Array,
      default() {
        return [10, 20, 30, 50, 100]
      }
    },
    layout: {
      type: String,
      default: 'total, sizes, prev, pager, next, jumper'
    },
    background: {
      type: Boolean,
      default: true
    },
    autoScroll: {
      type: Boolean,
      default: true
    },
    hidden: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    // 當前頁數(shù)
    currentPage: {
      get() {
        return this.page;
      },
      set(val) {
        this.$emit('update:page', val);
      }
    },
    pageSize: {
      get() {
        return this.limit;
      },
      set(val) {
        this.$emit('update:limit', val);
      }
    }
  },
  methods: {
    handleSizeChange(val) {
      this.$emit('pagination', { page: this.currentPage, size: val });
      // if (this.autoScroll) {
      //   scrollTo(0, 800);
      // }
    },
    handleCurrentChange(val) {
      this.$emit('pagination', { page: val, size: this.pageSize });
      // if (this.autoScroll) {
      //   scrollTo(0, 800);
      // }
    }
  }
}
</script>
<style scoped>
.pagination-container {
  background: #fff;
  padding-top: 10px;
}
.pagination-container.hidden {
  display: none;
}
</style>

2.需要使用分頁組件的頁面調(diào)用

<template>
    <div class="content-box">
        <div class="container">
            <p>主體頁面 2 - 2</p>
            <div class="table-container">
                <el-table
                    ref="Table2"
                    :data="list"
                    style="width: 100%;"
                    show-overflow-tooltip="true"
                    @selection-change="handleSelectionChange"
                    border
                >
                    <el-table-column type="selection" align="center"></el-table-column>
                    <el-table-column label="操作" width="120" align="center" fixed="right"> </el-table-column>
                </el-table>
            </div>
            <!-- 分頁組件 -->
            <Pagination :total="total" :page.sync="listQuery.pageNum" :limit.sync="listQuery.pageSize" @pagination="getList"></Pagination>
        </div>
    </div>
</template>
<script>
import Pagination from '@/components/common/Pagination';
import { testApi } from '@/api/test';
const defaultListQuery = {
    pageNum: 1,//給后端的數(shù)據(jù),可以根據(jù)后端需要更改
    pageSize: 10,
    keyword: ''
};
export default {
    data() {
        return {
            listQuery: Object.assign({}, defaultListQuery),//淺拷貝,引用數(shù)據(jù)類型相互影響
            list: [],
            total: 0,
            listLoading: true,
            selectedList: []
        };
    },
    components: {
      // 注冊分頁
        Pagination
    },
    created() {
        this.getList();
    },
    methods: {
        getList() {
            // 獲取數(shù)據(jù)列表
            this.listLoading = true;
            testApi(this.listQuery).then(res => {
                this.listLoading = false;
                this.list = res.data.list;
                this.total = res.data.total;
            });
        },
        handleSelectionChange(val) {
            // 批量選擇行數(shù)
            this.selectedList = val;
        }
    }
};
</script>

3.結(jié)果

到此這篇關(guān)于vue el-pagination分頁查詢封裝的文章就介紹到這了,更多相關(guān)vue el-pagination分頁查詢封裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3實現(xiàn)多個表格同時滾動并固定表頭

    vue3實現(xiàn)多個表格同時滾動并固定表頭

    這篇文章主要給大家介紹了vue3中多個表格怎么同時滾動并且固定表頭,文中通過代碼示例給大家講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • vite項目import.meta.env如何能獲取非VITE開發(fā)的環(huán)境變量

    vite項目import.meta.env如何能獲取非VITE開發(fā)的環(huán)境變量

    這篇文章主要介紹了vite項目import.meta.env如何能獲取非VITE開發(fā)的環(huán)境變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Vue實現(xiàn)動態(tài)圓環(huán)百分比進度條

    Vue實現(xiàn)動態(tài)圓環(huán)百分比進度條

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)動態(tài)圓環(huán)百分比進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue使用axios進行數(shù)據(jù)異步交互的方法

    Vue使用axios進行數(shù)據(jù)異步交互的方法

    大家都知道在Vue里面有兩種出名的插件能夠支持發(fā)起異步數(shù)據(jù)傳輸和接口交互,分別是axios和vue-resource,同時vue更新到2.0之后,宣告不再對vue-resource更新,而是推薦的axios,今天就講一下怎么引入axios,需要的朋友可以參考下
    2024-01-01
  • vue-cli3 項目從搭建優(yōu)化到docker部署的方法

    vue-cli3 項目從搭建優(yōu)化到docker部署的方法

    這篇文章主要介紹了vue-cli3 項目從搭建優(yōu)化到docker部署的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue中this.$message的實現(xiàn)過程詳解

    vue中this.$message的實現(xiàn)過程詳解

    Message在開發(fā)中的使用頻率很高,也算是Element-UI組件庫中比較簡單的,對于感興趣的朋友可以一起探討一下Message組件的實現(xiàn),本文詳細介紹了vue中this.$message的實現(xiàn)過程,感興趣的同學可以參考一下
    2023-04-04
  • vue-以文件流-blob-的形式-下載-導(dǎo)出文件操作

    vue-以文件流-blob-的形式-下載-導(dǎo)出文件操作

    這篇文章主要介紹了vue-以文件流-blob-的形式-下載-導(dǎo)出文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue $mount實戰(zhàn)之實現(xiàn)消息彈窗組件

    Vue $mount實戰(zhàn)之實現(xiàn)消息彈窗組件

    這篇文章主要介紹了Vue $mount實現(xiàn)消息彈窗組件的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • 降低vue-router版本的2種解決方法實例

    降低vue-router版本的2種解決方法實例

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于降低vue-router版本的2種解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Vue刷新后頁面數(shù)據(jù)丟失問題的解決過程

    Vue刷新后頁面數(shù)據(jù)丟失問題的解決過程

    在做vue項目的過程中有時候會遇到一個問題,就是進行F5頁面刷新的時候,頁面的數(shù)據(jù)會丟失,這篇文章主要給大家介紹了關(guān)于Vue刷新后頁面數(shù)據(jù)丟失問題的解決過程,需要的朋友可以參考下
    2022-11-11

最新評論