<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        element-ui怎樣實現(xiàn)復用Table的組件

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 19:54:55
        文檔

        element-ui怎樣實現(xiàn)復用Table的組件

        element-ui怎樣實現(xiàn)復用Table的組件:這次給大家?guī)韊lement-ui怎樣實現(xiàn)復用Table的組件,element-ui實現(xiàn)復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改
        推薦度:
        導讀element-ui怎樣實現(xiàn)復用Table的組件:這次給大家?guī)韊lement-ui怎樣實現(xiàn)復用Table的組件,element-ui實現(xiàn)復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改

        這次給大家?guī)韊lement-ui怎樣實現(xiàn)復用Table的組件,element-ui實現(xiàn)復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。

        餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改成了另一種方式(我不會告訴你其實本質(zhì)沒變)。

        項目中表格較多,所以復用性最重要

        步驟一

        先來個基本的表格展示

        官例的tableData

        tableData: [{
         date: '2016-05-02',
         name: '王小虎',
         address: '上海市普陀區(qū)金沙江路 1518 弄'
        }, {
         date: '2016-05-04',
         name: '王小虎',
         address: '上海市普陀區(qū)金沙江路 1517 弄'
        }, {
         date: '2016-05-01',
         name: '王小虎',
         address: '上海市普陀區(qū)金沙江路 1519 弄'
        }, {
         date: '2016-05-03',
         name: '王小虎',
         address: '上海市普陀區(qū)金沙江路 1516 弄'
        }]

        table.vue

        <template>
         <el-table :data="tableData" border>
         <el-table-column prop="date" label="日期"></el-table-column>
         <el-table-column prop="name" label="姓名"></el-table-column>
         <el-table-column prop="address" label="地址"></el-table-column>
         </el-table>
        </template>

        步驟二

        簡化一下表格:

        //table.vue
        <template>
         <el-table :data="tableData" border>
         <el-table-column v-for="(item,key) in tableKey" 
         :key="key"
         :prop="item.value"
         :label="item.name"></el-table-column>
         </el-table>
        </template>
        <script>
        export default{
         name: 'table',
         data(){
         return{
         tableData:[...],
         tableKey: [{
         name: 'date',
         value: '日期'
         },{
         name: '姓名',
         value: 'name'
         },{
         name: '地址',
         value: 'address'
         }]
         }
         }
        }
        </script>

        步驟三

        復用table.vue就是————給它數(shù)據(jù)的同時告訴它我的字段名唄

        新建一個父組件sl_table.vue

        //sl_table.vue
        <template>
         <sl-table :tableData="tableData" :tableKey="tableKey"></sl-table>
        </template>
        <script>
        import Table from '@/components/table'
        export default{
         name: 'sl-table',
         data(){
         return {
         tableData: [...]
         tableKey: [{
         name: 'date',
         value: '日期'
         },{
         name: '姓名',
         value: 'name'
         },{
         name: '地址',
         value: 'address'
         }]
         }
         },
         components: {
         'sl-table': Table
         }
        }
        </script>

        table.vue就更簡單了

        //table.vue
        <template>
         <el-table :data="tableData" border>
         <el-table-column v-for="(item,key) in tableKey" 
         :key="key"
         :prop="item.value"
         :label="item.name"></el-table-column>
         </el-table>
        </template>
        <script>
        export default{
         name: 'table',
         data(){
         return{
         
         }
         },
         props:['tableData','tableKey'],
        }
        </script>

        步驟四

        可以根據(jù)需求修改table的形式

        列寬度

        這個較為簡單,可以直接加個屬性

        //sl_table.vue
        ...
         data(){
         return {
         tableData: [...]
         tableKey: [{
         name: 'date',
         value: '日期',
         width: 80
         },{
         name: '姓名',
         value: 'name',
         width: 80
         },{
         name: '地址',
         value: 'address'
         }]
         }
         },
        ...

        table.vue

        //table.vue
        ...
        <el-table-column v-for="(item,key) in tableKey" 
        :key="key"
        :prop="item.value"
        :label="item.name"
        :width="item.width"></el-table-column>
        ...

        自定義模板列

        如果我們需要告訴組件哪個是自定義的列,所以添加一個屬性operate

        table.vue

        <el-table-column v-for="(item,key) in tableKey" 
        v-if="!item.operate"
        :key="key"
        :prop="item.value"
        :label="item.name"
        :width="item.width"></el-table-column>
        <!-- 自定義 -->
        <el-table-column v-else>
         <template scope="scope">
         <slot :name="item.value" :$index="scope.$index" :row="scope.row"></slot>
         </template>
        </el-table-column>
        //sl_table.vue
        <sl-table :tableData="tableData" :tableKey="tableKey">
         <template slot="date" scope="scope">
         <span>{{ scope.row.date | DateFilter }}</span>
         </template>
        </sl-table>
        ...
         data(){
         return {
         tableData: [...]
         tableKey: [{
         name: 'date',
         value: '日期',
         operate: true
         },{
         name: '姓名',
         value: 'name',
         operate: false
         },{
         name: '地址',
         value: 'address',
         operate: false
         }]
         }
         },
         filters: {
         DateFilter(){...}
         }
        ...

        表格展開行

        類似寬度,只要sl_table.vue傳入一個isExpand的屬性。這里加個每次只能展開一行的效果:

        //sl_table.vue
        <sl-table :tableData="tableData" :tableKey="tableKey" :isExpand="true" :isExpandOnly="true">
         <template slot="expand" scope="scope">
         {{...expand something}}
         </template>
         ...
        </sl-table>

        table.vue

        //table.vue
        <el-table :data="tableData" border @expand="handleExpand" ref="raw_table">
         <el-table-column v-if="isExpand" type="expand">
         <template scope="scope">
         <slot name="expand" :$index="scope.$index" :row="scope.row"></slot>
         </template>
         </el-table-column>
        </el-table>
        ...
        props: ['tableData','tableKey','isExpand','isExpandOnly'],
        methods: {
         handleExpand(row,is_expand){
         if(this.isExpand && this.isExpandOnly){
         this.$refs.raw_table.store.states.expandRows = expanded ? [row] : [] 
         }
         }
        }

        其他的(排序、多選)操作也是類似添加。。多不贅述。

        相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關注Gxl網(wǎng)其它相關文章!

        推薦閱讀:

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        element-ui怎樣實現(xiàn)復用Table的組件

        element-ui怎樣實現(xiàn)復用Table的組件:這次給大家?guī)韊lement-ui怎樣實現(xiàn)復用Table的組件,element-ui實現(xiàn)復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改
        推薦度:
        標簽: 實現(xiàn) 組件 ui
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 3344免费播放观看视频| 日本高清高色视频免费| 真实乱视频国产免费观看| 亚洲人成影院77777| 99无码人妻一区二区三区免费 | 亚洲AV无码一区二区三区在线观看| 亚洲欧美日韩中文高清www777| 亚洲高清中文字幕免费| 亚洲精品成a人在线观看☆ | 国产AV无码专区亚洲AV手机麻豆| 一区二区免费电影| 亚洲色成人网站WWW永久| 免费人成毛片动漫在线播放| 亚洲一区二区三区电影| 成人午夜免费福利视频| 亚洲七久久之综合七久久| 免费在线观看一级毛片| 国产精品青草视频免费播放| 亚洲AV无一区二区三区久久| 91久久成人免费| 国产亚洲精品成人久久网站| 国产亚洲精品高清在线| 69xx免费观看视频| 亚洲AV噜噜一区二区三区| 亚洲熟妇无码另类久久久| 久视频精品免费观看99| 亚洲AV第一成肉网| 久久久久亚洲AV成人无码| 一本无码人妻在中文字幕免费| 美女啪啪网站又黄又免费| 久久亚洲精品视频| 在线观看特色大片免费视频| 一级毛片免费毛片毛片| 亚洲国产一区二区三区青草影视| 成人啪精品视频免费网站| XXX2高清在线观看免费视频| 亚洲人成在久久综合网站| 亚洲中文字幕无码爆乳av中文| 日本片免费观看一区二区| 日韩在线一区二区三区免费视频| 亚洲首页在线观看|