基于element的分页进行的二次封装

在上一篇中,我们针对表格进行了封装,使得我们的开发效率有了一个小小的提升,今天再带大家来对分页进行封装。这样我们表格加分页就组成了一个完整的功能封装。
我们都知道,element官网提供的分页提供了两个重要的属性,page-size(每页显示条目个数)和current-page(当前页数),并且都支持.sync属性。.sync我们熟悉vue的同学都知道,这是官方为我们提供的福利属性,让我们能够实现同时多个双向绑定,这也为我们实现分页等需要同时多个双向绑定的组件带来了很大的帮助,减少了许多开发难度。
同时,我们应该有想到,我们在进行每一次条目和当前页数的改变时,会改变父组件传递过来的数值,这种直接修改是不符合vue单向数据流的思想的,这个时候,我们这里用到官网给与的建议------使用这个 prop 的值来定义一个计算属性的方式来解决。

话不多说,先上图
QQ截图20201110101000.png

如图,我们建立了2个表格,两个表格携带着分页他就向你走来了,而你只需要传两个不同的config就好了
QQ截图20201110101143.png

我们的分页组件很简单,只需要把官网的几个常用属性变成你的prop就好了。


我们这个分页引入在昨天封装的table组件中



细心的小伙伴儿发现,诶,你这个分页没有通知分页变化改变数据的方法呀??多了个v-on=“listeners和$attrs是vue提供的 property,一个是prop传递,一个是事件传递。这样我们就可以把在分页组件中定义好的分页方法通知父级组件来进行数据改变


我们看到,这里我们直接调用了pagetion组件中的分页方法,然后我们拿到分页页数和条目,调用拉取列表的方法就好了。
吕某人这里只是对表格和分页进行了基础封装。有需要loading等更多效果和属性的可以自行进行添加,这里不再赘述,感觉对你有帮助的小伙伴,帮忙点个赞吧,码文不易,谢谢点赞!

你可能感兴趣的:(基于element的分页进行的二次封装)