vue-cli對(duì)element-ui組件進(jìn)行二次封裝的實(shí)戰(zhàn)記錄
為什么要element對(duì)進(jìn)行二次封裝?
1.element-ui組件的部分樣式不滿(mǎn)足當(dāng)前項(xiàng)目的需求。
element-ui組件的樣式是固定的,比如我們常用的那些組件,table,button,icon,tab等等。當(dāng)我們需要的樣式和element組件有偏差的時(shí)候,我們可以通過(guò)針對(duì)element組件進(jìn)行二次封裝,然后通過(guò)Vue.component()方法,定義到全局,來(lái)解決我們當(dāng)前的項(xiàng)目需求。
2.element-ui組件出現(xiàn)問(wèn)題的時(shí)候,我們有中間鍵支持,不至于整個(gè)項(xiàng)目崩塌。
其實(shí)這種現(xiàn)象是常有發(fā)生的,比如組件由最開(kāi)始的開(kāi)源的,突然收費(fèi)了 (雖然我相信ele團(tuán)隊(duì)不會(huì)的)。或者element組件庫(kù)的開(kāi)發(fā)團(tuán)隊(duì)停止了維護(hù)。組件的二次封裝都是有意義的。我們可以手寫(xiě)一個(gè)類(lèi)似的組件,或者引入其它組件,使我們的項(xiàng)目,能夠正常使用。綜上所述,如果我們基于element做的項(xiàng)目,因?yàn)閑lement出現(xiàn)了問(wèn)題,組件的二次封裝,可以有效的防止項(xiàng)目崩塌。
3.二次封裝的弊端:
因?yàn)槲覀儗?duì)element-ui進(jìn)行了二次封裝,當(dāng)element-ui組件升級(jí)的時(shí)候,我們二次封裝的組件不能直接使用element-ui的新方法,所以需要有人不斷的對(duì)組件進(jìn)行維護(hù),有一定的開(kāi)發(fā)成本。
如何對(duì)element對(duì)進(jìn)行二次封裝?
本文全文以vue-cli和element為例,如果對(duì)vue-cli如何下載和安裝以及element-ui如何引用不了解的同學(xué),本文對(duì)你的幫助將很小。
首先,先建立一個(gè)文件夾,table.vue是我們基于element-ui的el-table進(jìn)行二次封裝的文件,以及所在目錄如圖:
<template> <div class="sir-table"> <el-table :data="showData" style="width: 100%"> <slot></slot> </el-table> </div> </template> <script> export default { props: { data: { default () { return [] }, type: Array } }, data () { return { showData: [] } }, methods: { }, mounted () { this.showData = this.data console.log(this.showData) } } </script> <style scoped> </style>
然后,我們通過(guò)index把我們二次封裝的組件引入進(jìn)來(lái),并給它名為為sir-table, ps:叫什么都行!
import SirTable from './table' export default { install: (Vue) => { Vue.component('sir-table', SirTable) } }
然后在main.js中引入我們二次封裝組件的index.js,并掛在全局上。
import eleconfig from './components/elecomponent/index.js' Vue.use(eleconfig)
然后,在任意的一個(gè)文件中,掉用我們封裝好的組件
<template> <div class="index"> <sir-table :data="tableData5"> // 在這里調(diào)用我們二次封裝的組件 <el-table-column label="商品 ID" prop="id"> </el-table-column> <el-table-column label="商品名稱(chēng)" prop="name"> </el-table-column> <el-table-column label="描述" prop="desc"> </el-table-column> </sir-table> </div> </template> <script> export default { // name: 'HelloWorld', data () { return { tableData5: [{ id: '12987122', name: '好滋好味雞蛋仔', category: '江浙小吃、小吃零食', desc: '荷蘭優(yōu)質(zhì)淡奶,奶香濃而不膩', address: '上海市普陀區(qū)真北路', shop: '王小虎夫妻店', shopId: '10333' }, { id: '12987123', name: '好滋好味雞蛋仔', category: '江浙小吃、小吃零食', desc: '荷蘭優(yōu)質(zhì)淡奶,奶香濃而不膩', address: '上海市普陀區(qū)真北路', shop: '王小虎夫妻店', shopId: '10333' }] } }, methods: { } } </script> <style scoped> .index { width: 800px; margin: 0 auto; margin-top: 200px; } </style>
就這樣,一個(gè)簡(jiǎn)易的element組件的二次封裝,就完成了!
https://github.com/yuanxin666/sir-zujian
總結(jié)
到此這篇關(guān)于vue-cli對(duì)element-ui組件進(jìn)行二次封裝的文章就介紹到這了,更多相關(guān)vue-cli對(duì)element-ui組件二次封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3中的?computed,watch,watchEffect的使用方法
這篇文章主要介紹了Vue3中的?computed,watch,watchEffect的使用方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)價(jià)值,需要得小伙伴可以參考一下2022-06-06基于Vue 2.0的模塊化前端 UI 組件庫(kù)小結(jié)
AT-UI 是一款基于 Vue.js 2.0 的輕量級(jí)、模塊化前端 UI 組件庫(kù),主要用于快速開(kāi)發(fā) PC 網(wǎng)站產(chǎn)品。下面通過(guò)本文給大家介紹Vue 2.0的模塊化前端 UI 組件庫(kù),需要的朋友參考下吧2017-12-12javascript中Set、Map、WeakSet、WeakMap區(qū)別
這篇文章主要介紹了javascript中Set、Map、WeakSet、WeakMap區(qū)別,需要的朋友可以參考下2022-12-12elementui中使用el-tabs切換實(shí)時(shí)更新數(shù)據(jù)
這篇文章主要介紹了elementui中使用el-tabs切換實(shí)時(shí)更新數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Vue中Video標(biāo)簽播放解析后短視頻去水印無(wú)響應(yīng)解決
這篇文章主要為大家介紹了Vue中使用Video標(biāo)簽播放?<解析后的短視頻>去水印視頻無(wú)響應(yīng)的解決方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04關(guān)于vue-admin-element中的動(dòng)態(tài)加載路由
這篇文章主要介紹了關(guān)于vue-admin-element的動(dòng)態(tài)加載路由,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue項(xiàng)目適配屏幕分辨率與屏幕的縮放適配詳細(xì)教程
現(xiàn)在很多14寸的筆記本,出廠(chǎng)默認(rèn)就是150%的顯示。導(dǎo)致很多時(shí)候我們的項(xiàng)目,自己開(kāi)發(fā)的時(shí)候都是按照100%比例來(lái)開(kāi)發(fā)的,上線(xiàn)了就會(huì)發(fā)現(xiàn)這個(gè)問(wèn)題,今天就這個(gè)問(wèn)題給出解決方案,感興趣的朋友跟隨小編一起看看吧2022-11-11vue項(xiàng)目中使用rem,在入口文件添加內(nèi)容操作
這篇文章主要介紹了vue項(xiàng)目中使用rem,在入口文件添加內(nèi)容操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11vue3原始值響應(yīng)方案及響應(yīng)丟失問(wèn)題解讀
這篇文章主要介紹了vue3原始值響應(yīng)方案及響應(yīng)丟失問(wèn)題解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04