使用Vue中mock.js实现分页功能
使用Vue中mock.js实现分页功能
1.引入Vue.js包
<script src=https://cdn.jsdelivr.net/npm/vue/dist/vue.js></script>
2.引入Mock.js包
<script src="http://mockjs.com/dist/mock.js"></script>
3.Css样式
<style>
.red{
background: #000;
color:white
}
</style>
4.Html 布局
<body>
<div id="app">
<input type="text" v-model="isA">
<p>{
{
text}}</p>
<p>总页数:{
{
pageNum}}</p>
<p>当前页:{
{
currentPage+1}}</p>
<button @click="nextPage">下一页</button>
<button @click="curPage(i)" :class="{red:currentPage==i}" v-for="btn,i in pageNum">
{
{
btn}}
</button>
<button @click="prePage">上一页</button>
<ul v-for="item in dataShow">
<li>{
{
item.id}}</li>
<li>{
{
item.name}}</li>
<li>{
{
item.ago}}</li>
<li>{
{
item.sex}}</li>
<li>{
{
item.job}}</li>
<li>{
{
item.img}}</li>
</ul>
</div>
</body>
5.Vue.js 代码
<script>
const vm = new Vue({
el:"#app",
data:{
isA:A,
isB:B,
text:,
data:[],
totalPage:[],//每页显示数据
pageSize:10,//显示数量
pageNum:1, //共几页
dataShow:"",//当前显示第一页数据
currentPage:0 //默认显示第一页
},
computed:{
},
methods:{
nextPage(){
if(this.currentPage === this.pageNum-1) return
this.dataShow = this.totalPage[++this.currentPage];
this.getData()
},
prePage(){
if(this.currentPage === 0) return
this.dataShow = this.totalPage[--this.currentPage];
this.getData()
},
curPage(i){
this.currentPage = i
this.getData()
},
getData(){
//共
this.pageNum = Math.ceil(this.data.length/this.pageSize) || 1;
this.data.map((item,i)=>{
this.totalPage[i] =this.data.slice(this.pageSize * i ,this.pageSize*(i+1))
})
this.dataShow = this.totalPage[this.currentPage];
console.log(this.dataShow )
}
},
mounted(){
//mock 数据
var list =Mock.mock({
"userInfo|100":[{
//生成|num个如下格式名字的数据
"id|+1":1, //数字从当前数开始后续依次加一
"name":"@name", //名字为随机中文名字
"ago|18-28":25, //年龄为18-28之间的随机数字
"sex|1":["男","女"], //性别是数组中的一个,随机的
"job|1":["web","UI","python","php"] , //工作是数组中的一个
"img":"@image"
}]
})
this.data=list.userInfo
console.log(this.data)
this.getData();
},
})
</script>
上一篇:
IDEA上Java项目控制台中文乱码
