做wikix项目的时候,要自己写一个翻页插件,整个架构是基于vue的,所以用vue来写一个分页插件
分析一下百度分页插件的特性:
-
如果页数小于5,当前是几页就是几页
-
如果页数大于等于6,当前页永远显示在第6个位置
3.那个脚印的话, 就懒得做了
写一个生成翻页列表的函数, 在初始化页面的时候,调用一次, 然后每次更新当前页面索引的时候, 调用一次
generatepageList(this.page) {
let tpl = []
let tpr = []
if(page < 6){
return [1,2,3,4,5,6,7,8,9,10]
} else {
for (let i = 5; i > 0; i--){
tpl.push(page - i)
}
for (let j = 1; j < 5; j++){
tpr.push(page + j)
}
tpl.push(page)
return tpl.concat(tpr)
}
}
监听搜索关键字的改变,一旦发生改变, 调用函数
watch: {
key() {
// key 值改变, 请求第一页的数据
this.getData(this.key, 1)
this.pageList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
this.generatePage(this.page);
},
page () {
// 如果 page 改变, 请求第 page 页的数据
this.getData(this.key, this.page)
this.generatePage(this.page);
// 让页面滚回顶部
window.scrollTo(0, 0)
}
}
然后。。。 就完美的实现了。。。
网友评论