vue+element实现分页的封装
时间:2022-07-23
本文章向大家介绍vue+element实现分页的封装,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
分页想必大家都写过,后台管理项目分页是必不可少的,话不多说,上代码
Paging组件
<template>
<!-- 分页组件的封装 -->
<div class="pagination">
<el-pagination
@size-change="sizeChange"
@current-change="currentChange"
:page-sizes="[1,5,10,15,,20]"
layout="total, sizes, prev, pager, next, jumper"
:current-page.sync="pageNum"
:page-size="pageSize"
:total="total"
:small="small">
</el-pagination>
</div>
</template>
<script>
export default {
name: "Paging",
data () {
return {
pageNum: 1 //当前页数
}
},
//子组件接收父组件的值
props:{
'total': { //总条目数
required: false,//是否必须
default: 0 //默认值
},
'pageSize': {
required: false, //是否必须
default: 10 //默认值(默认显示10条)
},
'small': { //是否使用小型分页样式
required: false, //是否必须
type: Boolean, //类型
default: false //默认值
}
},
//计算属性 计算属性是基于他们的依赖做缓存
// (如果计算的逻辑大的话,可以用这个,比方说你先循环100次,再循环1000次,他会把上一次的循环也加上去,也就是缓存)
computed: {
},
//侦听器 响应数据的变化
watch: {
//监听页数变化
pageNum(val,index) {
console.log(val); //值
console.log(index);//下标
// 改变这个值并不会触发 handleCurrentChange
if (typeof val === "number") {
this.pageNum = val;
}
},
},
methods: {
// 当前页变化
sizeChange(val) {
// console.log(val);
//子组件向父组件传值
this.$emit("sizeChange", val);
},
// size变化
currentChange(val) {
// console.log(val);
//子组件向父组件传值
this.$emit('currentChange', val);
},
}
}
</script>
<style lang="scss" scoped>
.pagination {
margin: 20px 0;
text-align: right;
}
</style>
页面使用
<!-- 分页 -->
<Paging :pageNum="this.form.page" :total="total" :pageSize="this.form.size" :small="true"
@sizeChange="sizeChange" @currentChange="currentChange"></Paging>
<script>
import Paging from '../../components/Paging'
export default {
components: {
Paging
},
data () {
return {
total:0,
form:{
page:1,
size:10
}
}
},
created () {
this.findAllPost() //查询接口
},
methods: {
async findAllPost(){
let {data:res}=await this.$http.post('feedback/findAll',this.form)
console.log(res);
if (res.code==200) {
this.adminList=res.data.records
this.total=res.data.total
}
},
//上一页下一页按钮
currentChange(val) {
this.form.page = val;
this.findAllPost();
},
//每页显示几条数据按钮
sizeChange(val) {
this.form.size = val;
this.findAllPost();
},
}
}
</script>
<style lang="scss" scoped>
</style>
- mysql 删表引出的问题
- 修改chrome插件
- cron和crontab
- jboss上的soap web service开发示例
- 微信小程序与新零售相结合引流又出新方法啦!
- JAVA CDI 学习(2) - Scope 生命周期
- JAVA CDI 学习(3) - @Produces及@Disposes
- 3分钟带你学会git向github推送!
- JAVA CDI 学习(4) - @Alternative/@Default/@Any & Extension
- centos6.6 下安装mysql
- silverlight 4 tools for vs2010无法在vs2010 SP1上安装的解决办法
- find命令小结
- Python加圣诞帽
- 多次grep 没有看到输出
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- docker运行Tomcat后访问首页报404(详细永久解决步骤)
- vue.js如何快速入门第1篇
- 3.列表-HTML基础
- 启动时间的一些分析
- 1.HTML基础知识-HTML进阶
- 浅析一个postgresql的死锁问题
- 你的第一个React App (二 ) - 应用组件开发
- 在Angular应用里使用Redux
- Elasticsearch 日志配置详解
- Cypress系列(52)- fixture() 命令详解
- Docker学习笔记---Dockerfile
- Java面试高频知识点汇总 JVM专题
- Java面试高频知识点汇总 网络协议专题
- 「Mysql优化大师一」mysql服务性能剖析工具
- FPGA设计心得(12)如何正确使用 in_system_ibert ?