自定义封装element-ui-table组件

为什么对element进行二次封装?

  1. element-ui组件的部分样式不满足当前项目需求

  2. element-ui组件出现问题的时候,我们用中间件支持,不至于整个项目崩塌。

二次封装的弊端:

  1. 因为我们对element-ui进行了二次封装,当element-ui组件升级的时候,所以我们封装的组件不能直接使用element-ui的新方法,就需要有人不断的对组件进行维护,有一定的开发成本。

封装步骤:

  1. 在 components 文件夹下创建一个 element-table 文件夹,在里边分别创建 Table.vue 和 index.js 文件
Table.vue :
	<template>
    	      <div>
        		<el-table :data="showData" stripe="true">
            		         <slot></slot>
        		</el-table>
    	      </div>
	</template>
	<script>
	export default {
    	        name:"ElementTable",
    	        data(){
        	             return{
            		showData:[]
        	             }
    	        },
    	       props:{
        	            data:{
            		type:Array,
            		default:function(){
                	      return []
            		}
        	           }
    	        },
    	      mounted(){
        	           this.showData = this.data
    	       }
	}

 index.js:
	import ElementTable from './Table.vue'
	export default (Vue) =>{  //挂载到vue实例上
    	        Vue.component(ElementTable.name,ElementTable);
	}
  1. 在全局 main.js 中引入使用或者局部使用
import ElementTable from './components/element-table'
	Vue.use(ElementTable)
  1. 在组件中使用自定义UI插件
<template>
	      <div>
	          <element-table :data="tableData" >  <!-- data中定义tableData,将这个数组传递到子组件Table.vue -->
        		<el-table-column label="时间" prop="date"></el-table-column>
        		<el-table-column label="名称" prop="name"></el-table-column>
        		<el-table-column label="地址" prop="address"></el-table-column>
      	          </element-table>
	      </div>
	</template>
	  data() {
    	       return {
      	            tableData: [
		{
          		      date: "2016-05-02",
          		      name: "王小虎",
          		      address: "上海市普陀区金沙江路 1518 弄"
        		},
        		{
          		      date: "2016-05-04",
          		      name: "王小虎",
          		      address: "上海市普陀区金沙江路 1517 弄"
        		},
        		{
          		      date: "2016-05-01",
          		      name: "王小虎",
          		      address: "上海市普陀区金沙江路 1519 弄"
        		},
        		{
          		      date: "2016-05-03",
          		      name: "王小虎",
          		      address: "上海市普陀区金沙江路 1516 弄"
        		}
	            ]
	        }
	   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值