您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)在vue項(xiàng)目中使用Element-ui如何實(shí)現(xiàn)一個(gè)分頁(yè)效果,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
分頁(yè)技術(shù)
分頁(yè)技術(shù)的概念
分頁(yè)就是將所有的數(shù)據(jù)分段展示給用戶,用戶看到的可能不是全部的數(shù)據(jù),而是其中一部分,用戶可以通過點(diǎn)擊頁(yè)碼來查找自己需要的內(nèi)容,也可以通過模糊查詢獲取符合內(nèi)容的數(shù)據(jù)
分頁(yè)的意義
分頁(yè)確實(shí)有效,但它一定會(huì)加大系統(tǒng)的復(fù)雜度,但可否不分頁(yè)呢?如果數(shù)據(jù)量少的話當(dāng)然可以.但是對(duì)于企業(yè)信息系統(tǒng)來說數(shù)據(jù)量不會(huì)限制在一個(gè)小范圍內(nèi).如果不顧一切的Select * from某個(gè)表,再將返回的數(shù)據(jù)一古腦的扔給客戶,即使客戶能夠忍受成千上萬足夠讓人眼花繚亂的表格式數(shù)據(jù),繁忙的網(wǎng)絡(luò),緊張的服務(wù)器也會(huì)提出它們無聲的抗議,甚至有時(shí)會(huì)以徹底的罷工
前端實(shí)現(xiàn)分頁(yè)效果
在el-tree控件中將內(nèi)容按照一個(gè)頁(yè)面顯示十條數(shù)據(jù),來實(shí)現(xiàn)分頁(yè)的效果
實(shí)現(xiàn)效果:el-tree
<template> <div class="big"> <div class="top"> <el-input placeholder="搜索" v-model="searchData" @input="search"></el-input> </div> <div class="middle"> <el-tree :data="list"> <span slot-scope="{ node, data }"> <span class="el-icon-tickets"></span> <span>{{data.name}} {{data.age}}</span> </span> </el-tree> </div> <div class="bottom"> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" background :current-page="page" :page-size="limit" layout="prev, pager, next" :total="total"></el-pagination> </div> </div> </template>
<script> export default { data() { return { data: [{ name: 'aa', age: 12 }, { name: 'bb', age: 13 } ],//列舉一部分的數(shù)據(jù) list: [], // 顯示的數(shù)據(jù) limit: 10, // 條數(shù),每一頁(yè)顯示的數(shù)量 total: 20, // 所有的數(shù)量 page: 1, //當(dāng)前頁(yè) searchData: '' // 搜索內(nèi)容 } }, created() { this.pageList() }, methods: { pageList() { this.getList() }, // 處理數(shù)據(jù) getList() { // es6過濾得到滿足搜索條件的展示數(shù)據(jù)list var list = this.data.filter((item, index) => item.name.includes(this.searchData) ) // 搜索符號(hào)條件的內(nèi)容 console.log(list) this.list = list.filter((item, index) => index < this.page * this.limit && index >= this.limit * (this.page - 1) ) //根據(jù)頁(yè)數(shù)顯示相應(yīng)的內(nèi)容 this.total = list.length }, // 當(dāng)每頁(yè)數(shù)量改變 handleSizeChange(val) { console.log(`每頁(yè) ${val} 條`); this.limit = val this.getList() }, // 當(dāng)當(dāng)前頁(yè)改變 handleCurrentChange(val) { console.log(`當(dāng)前頁(yè): ${val}`); this.page = val this.getList() }, // 搜索過濾數(shù)據(jù) search() { this.page = 1 this.getList() } }, } </script>
el-table實(shí)現(xiàn)分頁(yè)效果也是類似的
展示效果
html的代碼,js的代碼和tree的分頁(yè)差不多,el-table的分頁(yè)添加了可以選擇顯示的數(shù)量,以及跳轉(zhuǎn)頁(yè)碼
<div class="big"> <el-row> <el-col :span="21"> <el-input v-model="searchData" @input="search" placeholder="輸入姓名搜索"></el-input> </el-col> <el-col :span="3"> <el-button type="success" @click="search">搜索</el-button> </el-col> </el-row> <el-table :data="list" border> <el-table-column label="姓名" prop="name"></el-table-column> <el-table-column label="年齡" prop="age"></el-table-column> </el-table> <div > <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page" :page-sizes="[1, 2,5, 10]" :page-size="limit" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> </div> </div>
關(guān)于在vue項(xiàng)目中使用Element-ui如何實(shí)現(xiàn)一個(gè)分頁(yè)效果就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。