前端项目公共组件封装思想

前端项目公共组件封装思想

1. 通用组件(表单搜索+表格展示+分页器)在项目当中我们总会遇到这样的页面:页面顶部是一个表单筛选项,下面是一个表格展示数据。表格下方是一个分页器,这样的页面在我们的后台管理系统中经常所遇到,有时候可能不止一个页面,好几个页面的结构都是这种。如图:

本人记得,在react中的高级组件库中有这么一个组件,就实现了这么一个效果。就拿这个页面来说我们实现一下组件封装的思想:1.首先把每个页面的公共部分抽出来,比如标题等,用props或者插槽的形式传入到组件中进行展示 2. 可以里面数据的双向绑定实现跟新的效果 3. 设置自定义函数传递给父组件要做上面事情

1.将公共的部分抽离出来

代码语言:javascript复制js复制代码TableContainer组件

这里的话利用了具名插槽插入了navbar、table组件,title通过props的属性传入到子组件当中。进行展示,

代码语言:javascript复制js复制代码父组件

当然这是一个非常非常简单的组件封装案例

接下来我们看一个高级一点的组件封装

父组件

代码语言:javascript复制js复制代码

父组件传递给子组件各种必要的属性:total(总共多少条数据)、page(当前多少页)、limit(每页多少条数据)、pageSizes(选择每页大小数组)

子组件

代码语言:javascript复制js复制代码

这里的page.sync、limit.sync目的就是为了实现数据的双向绑定,computed中监听page和limit的变化,子组件接收的数据通过computed生成的currentPage通过sync绑定到了 el-pagination中, 点击分页器的时候会改变currentPage 此时会调用set函数设置新的值,通过代码 this.$emit(update:page,value) 更新父组件中的值,实现双向的数据绑定

相关推荐

当之无愧的解释
beat365网页登录

当之无愧的解释

2025-06-28 👁️ 5607
FGO高效刷取血之泪石地点推荐:哪里掉落率最高?
365流水不够不能提现

FGO高效刷取血之泪石地点推荐:哪里掉落率最高?

2025-10-09 👁️ 1903
自动修复无法修复你的电脑怎么办?这几个方法可以试一试!
android如何打开数据库文件怎么打开
365流水不够不能提现

android如何打开数据库文件怎么打开

2025-09-20 👁️ 6354
越狱在哪个播放器可以缓存(哪个播放器可以看越狱第一季)
365流水不够不能提现

越狱在哪个播放器可以缓存(哪个播放器可以看越狱第一季)

2025-08-02 👁️ 7811
汽车报警器在哪里
365流水不够不能提现

汽车报警器在哪里

2025-07-01 👁️ 3833