本文共 1480 字,大约阅读时间需要 4 分钟。
在前一篇文章中,我们使用 Vue 实现了前端分页效果。这篇文章将独立开发一个分页组件,实现更灵活的分页功能。
在开发 Vue 组件时,需要考虑以下关键问题:
分页组件需要接收以下参数:
name:组件名称或其他标识符page-size:每页显示条目个数total:总条目数current-page:当前页数layout:布局配置,支持 jumper 和 totalchange:当前页改变时触发的事件组件间通信主要通过 props 和 emit 实现:
props: { title: String, likes: Number, isPublished: Boolean, commentIds: Array, author: Object} props: { propA: Number, propB: [String, Number], propC: { type: String, required: true }, propD: { type: Number, default: 100 }, propE: { type: Object, default: function () { return { message: 'hello' } } }, propF: { validator: function (value) { return ['success', 'warning', 'danger'].indexOf(value) !== -1 } }} 共{{ total }}条
- 上一页
- 1
- 下一页
前往
在父组件中引入并使用分页组件:
在开发过程中可能会遇到以下问题:
子组件修改 currentPage 导致父组件重新渲染,导致值被覆盖
解决方案:通过 emit 传递 currentPage 的值,避免直接修改父组件的 prop。
changePage: function (idx) { if (idx !== this.currentPage && idx > 0 && idx <= this.totalPage) { this.$emit('change', { curPage: idx }); }} onPageChange: function (page) { this.curPage = page.curPage;} 通过以上步骤,我们成功实现了一个功能完善的分页组件。分页组件的核心在于明确父子组件的通信机制和合理的布局设计。只要掌握了 Vue 组件的基础知识,开发一个高效的分页组件并不难。
转载地址:http://qzsuz.baihongyu.com/