摘要:流行的电商系统的商家中心、管理中心,理表格使用频率高,减少关于table的业务代码,且便于后期统一修改,后期维护。本文以Javashop电商系统为例介绍基于element中table组件进行二次简单的封装
一 table组件需求
-
搜索栏可选
-
包含分页
二 封装代码
首先在ui-components新建一个table文件夹
在同级的index.js里导入导出
import Vue from 'vue' import Tabel from './src/main' Tabel.install = () => { Vue.component(Tabel.name, Tabel) } export default Tabel
props 允许父组件传递数据给子组件;并且对于父组件传递过来的参数应该加一些检验规则,比如数据类型type,默认值default(对象和数组的默认值必须通过函数返回)
props: { /** 是否显示斑纹 */ stripe: { type: Boolean, default: true }, /** 行数据的 Key */ rowKey: { type: [String,Function], default: null }, /** 是否显示工具栏 */ toolbar: { type: Boolean, default: true }, /** 是否显示操作提示 */ tips: { type: Boolean, default: false }, /** 是否显示分页 */ pagination: { type: Boolean, default: true }, /** 表格数据 */ tableData: { default: () => ([]) }, /** 加载状态 */ loading: { type: Boolean, default: false }, /** 当选择项发生变化 */ selectionChange: { type: Function, default: () => {} } }
搜索栏是否可选实现:默认是显示,参数值为true;传递参数toolbar,可设置是否显示搜索栏,
分页功能:默认显示分页功能,参数值为rue;传递参数pagination,可设置是否显示分页
调用table组件
只需要在调用组件的地方,写上组件名字的标签即可,同时在标签上可以设置一些参数,传递给table组件
<en-table-layout toolbar pagination :tableData="tableData" :loading="loading"> </en-table-layout>
这样一个简单table组件封装就完成了