elementUI 分页如何使用

本文介绍如何使用Vue框架中的分页组件实现数据的分页加载功能,并通过具体代码示例展示了如何配置和使用这些组件来优化用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

template写

  <!-- 分页 -->
    <div class="block">
      <el-pagination layout="prev, pager, next" :total="total"  :current-page.sync="currentPage"
            :page-size="pageSize">
      </el-pagination>
    </div>
    <div class="newList-list"  v-if="(!isloading) && (arrData.length === 0)">暂无数据</div>
    <div class="newList-list" v-if="isloading">加载中... </div>

data里写

data() {
    return {
      arrData: [],
      area: '', // 擅长领域
      total: 0, // 总页数
      pageNum: 1, // 第几页
      pageSize: 6, // 每页显示的数量
      isloading: false,
      currentPage: 1,
    };
  },

watch

 watch: {
    currentPage(oldV, newV) {
      console.log(oldV, newV);
      this.exchangeCurrentPage();
    }
  },

methods

methods: {
    // 获取数据
    getData() {
      this.$http.get('//integral' + this.$getHost() + '/enterpriseInfo/queryEnterpriseList.json',
        {
          params: {
            pageSize: this.pageSize,
            pageNum: this.currentPage
          }
        }
      ).then((res) => {
        if (res.data.status === 0) {
          this.isloading = false;
          this.arrData = res.data.datas;
          res.data.datas.forEach((element) => {
            this.area = element.area.split(',');
          });
          this.total = res.data.total; // 总页数
          console.log(this.total);
        }
      });
    },
    exchangeCurrentPage() {
      this.arrData = [];
      this.isloading = true;
      this.getData();
    }
  }
### ElementUI 分页组件使用教程 #### 安装与引入 为了使用Element UI中的分页组件,首先需要确保已经正确安装并配置好了Element UI。可以选择完整引入整个库或是通过按需加载的方式只导入所需的模块[^3]。 #### 基础HTML结构设置 创建一个简单的页面布局,在适当位置放置`<el-pagination>`标签来定义分页控件的位置以及外观特性。例如: ```html <div id="app"> <!-- 表格或其他显示区域 --> <!-- 分页--> <el-pagination style="margin-left:62vw" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum" :page-sizes="[10, 20, 30]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="this.totalNum" > </el-pagination> </div> ``` 此部分代码设置了分页器的基础样式及其交互事件处理函数名,并指定了默认参数如每页大小选项(`page-sizes`)、初始页面数量(`currentPage`)等属性值[^5]。 #### 数据处理逻辑编写 为了让分页功能生效,还需要配合JavaScript/Vue.js完成实际的数据筛选工作。通常情况下,会利用计算属性(computed property)根据当前选中的页码和设定的每页记录数目对原始数据集(tableData)做切片(slice operation)[^2]。下面给出一段简化版的例子用来解释这一过程: ```javascript new Vue({ el: '#app', data() { return { pageNum: 1, pageSize: 10, totalNum: 100, tableData: Array.from({ length: 100 }, (_, i) => `Item ${i + 1}`) }; }, computed: { paginatedData() { const start = (this.pageNum - 1) * this.pageSize; const end = start + this.pageSize; return this.tableData.slice(start, end); } }, methods: { handleSizeChange(newSize) { console.log(`${newSize} items per page`); this.pageSize = newSize; }, handleCurrentChange(currentPage) { console.log(`current page: ${currentPage}`); this.pageNum = currentPage; } } }); ``` 上述脚本片段展示了如何监听用户的输入变化(比如改变每页项数或跳转至特定页),并通过更新相应的状态变量触发视图重新渲染,从而达到动态调整表格内容的效果。 #### 实现连续编号的功能扩展 如果希望即使跨多页也能保持行号连贯递增,则可以在模板内加入额外的计算字段负责生成这些序号。具体做法如下所示: ```vue <tr v-for="(item, index) in paginatedData" :key="index"> <td>{{ getRowIndex(index) }}</td> <!-- 显示行号 --> <td>{{ item }}</td> </tr> ... methods: { ... getRowIndex(indexWithinPage) { return ((this.pageNum - 1) * this.pageSize) + indexWithinPage + 1; } } ``` 这段代码实现了当用户翻阅不同页面时,每一行前面都会显示出正确的全局顺序号码而不是仅限于单页内的相对位次[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值