vue翻頁器,包括上一頁,下一頁,跳轉

来源:https://www.cnblogs.com/web-masong/archive/2019/01/04/10220233.html
-Advertisement-
Play Games

//組件引入import pager from '../../component/pager/pager.vue' //組件調用聲明components:{ pager} //參數data () { return { pageSize: 30, //總頁數 -- 後臺傳值 pageNo: 2 //當 ...


翻頁組件 -- 子組件
<template>
<div class="pager-wrapper" ref="pager">
<div class="pager-box">
<a class="pager-prev" :class="{'pager-disabled':prevDisable}" href="javascript:void(0)" @click="jumpPrev()">上一頁</a>
<template v-for="(i,index) in pageSize">
<span v-if="i==pageNo" class="pager-curr" :key="index">
<em class="pager-em"></em>
<em>{{i}}</em>
</span>
<a v-else-if="pageNo<5&&(i)<6" href="javascript:void(0)" @click="jump(i)" :key="index">
{{i}}
</a>
<a v-else-if="pageSize<7||i==1||i==pageSize||(pageNo-2<=i&&i<=pageNo+2)" href="javascript:void(0)" @click="jump(i)" :key="index">
{{i}}
</a>
<template v-else>
<span v-if="pageNo<5&&i==6" class="pager-spr" :key="index">…</span>
<span v-if="pageNo==4&&i==7" class="pager-spr" :key="index">…</span>
<span v-if="pageNo>4&&i==pageNo-3" class="pager-spr" :key="index">…</span>
<span v-if="pageNo>4&&i==pageNo+3" class="pager-spr" :key="index">…</span>
</template>
</template>
<a class="pager-next" :class="{'pager-disabled':nextDisable}" href="javascript:void(0)" @click="jumpNext()">下一頁</a>
</div>
<div class="pager-input">
<div>跳轉到:</div>
<input type="text" v-model="jumpPage">
<a class="pager-btn-go" href="javascript:void(0)" @click="Go()">GO</a>
</div>
</div>
</template>

<script>
export default {
model: { // 通過v-model傳過來的參數
prop: 'pageNo',
event: 'jumpPage'
},
props: {
pageSize: {
type: Number,
default: 1
},
pageNo: { // 通過v-model傳過來的參數
type: Number,
default: 1
}
},
data () {
return {
jumpPage: '' // 避免操作props參數
}
},
computed: {
prevDisable: function () { // “上一頁”按鈕是否可點
if (this.pageNo > 1) {
return false
} else {
return true
}
},
nextDisable: function () { // “下一頁”按鈕是否可點
if (this.pageNo < this.pageSize && this.pageSize > 1) {
return false
} else {
return true
}
}
},
methods: {
jumpPrev: function () { // 點擊上一頁
if (this.pageNo === 1) {
return false
} else {
this.$emit('jumpPage', this.pageNo - 1)
}
},
jumpNext: function () { // 點擊下一頁
if (this.pageNo === this.pageSize) {
return false
} else {
this.$emit('jumpPage', this.pageNo + 1) // 修改當前頁碼
}
},
jump: function (id) { // 直接跳轉
if (id > this.pageSize) {
id = this.pageSize
}
this.jumpPage = ''
this.$emit('jumpPage', id) // 修改當前頁碼
},
Go: function () {
if (this.jumpPage === '') { // 判空處理
return false
} else if (/^\d*$/.test(parseInt(this.jumpPage))) { // 填寫數字才能跳轉
this.jump(parseInt(this.jumpPage))
this.jumpPage = ''
} else {
this.jumpPage = ''
return false
}
}
}
}
</script>

<style scoped lang="stylus" type="text/stylus">
@import "~styles/varibles.styl"
.pager-wrapper
float right
display flex
flex-direction row
height 38px
.pager-box
margin-top -15px
a,span
display inline-block
width 38px
height 38px
margin 0 2px
border 1px solid #E5E5E5
color #bdbdbd
text-align center
font 14px/38px ""
em
color $bgColor
.pager-prev,.pager-next
width 78px
.pager-input
display flex
flex-direction row
height 38px
margin-left 20px
font 14px/40px ""
color #bdbdbd
input,.pager-btn-go
display inline-block
width 40px
height 40px
border 1px solid #E5E5E5
box-sizing content-box
outline none
text-align center
</style>

父組件
<pager :pageSize="pageSize" v-model="pageNo" @jumpPage="jump"></pager>

//組件引入
import pager from '../../component/pager/pager.vue'

//組件調用聲明
components:{ pager}

//參數
data () {
  return {
    pageSize: 30, //總頁數 -- 後臺傳值
    pageNo: 2  //當前頁
  }
}

//接收跳轉事件
methods:{
  jump (id) {
    console.log(id)
  }
}


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基本選擇器: 標簽(元素)選擇器 格式 >標簽名{ 聲明的屬性} 類 選擇器 >這裡有個點(.)+類名稱{聲明的屬性} ID 選擇器 >#+id名稱{聲明的屬性} 並集(群組)選擇器 >.類名,#id名稱,標簽名{聲明的屬性} 通配符 選擇器 >*{聲明的屬性} >這個的話會用到所有body中的元素 ...
  • 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <m ...
  • Generator 函數是 ES6 提供的一種非同步編程解決方案 async 函數使得非同步操作變得更加方便,是 Generator 函數的語法糖。 js單線程的原因是:避免DOM渲染衝突! 更新:2019.1.4 非同步的事件不是立即放到非同步隊列中。想setTimeout是到了設置的時間才放到非同步隊列中 ...
  • 事件流 事件冒泡 IE的事件流叫做事件冒泡,即事件開始時由最具體的元素接收,然後逐級向上傳播到較為不具體的節點(文檔)。如下代碼: 如果你點擊了上面的div元素,那麼這個click事件會按照如下順序傳播: (1)<div> (2)<body> (3)<html> (4)document 所有現代瀏覽 ...
  • 項目是拿 echarts + 百度地圖 來做可視化界面,現在到收尾階段慢慢優化。 先附代碼: 如下圖,預設圓點顏色為紅色: 其中item列印出如下圖: 發現marker(小圓點)即為html片段,要改變小圓點顏色只需自定義html即可。 附代碼: 效果圖: 同理,要改變小圓點形狀,重寫html片段即 ...
  • 跨域請求域有兩種常用解決方案,jsonp和cors, 因為jsonp只能解決get請求問題,我這裡用的是cors方法。 js前端ajax請求: $.ajax({ url: "http://192.168.0.43:9030/Home/GetTextValue", //需要請求的路徑(註意,部署的時候 ...
  • 一、類的理論 1、類的核心概念:多態 是說父類的通用行為可以被子類用更特殊的行為重寫 二、類的機制 1、構造函數 類實例是有一個特殊的類方法構造的,這個方法名通常和類名一致; 類構造函數屬於類,構造函數大多需要用new來調。 2、類的多態 其實就是子類可以改寫父類的同名方法也可以調用繼承自父類的同名 ...
  • lastIndexOf() 方法可返回一個指定的字元串值最後出現的位置,在一個字元串中的指定位置從後向前搜索 var str = 'Hello World' str.lastIndexOf('Hello') 如果能匹配到 --> 返回一個指定的字元串值最後出現的位置 str.lastIndexOf( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...