最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE element-ui 寫個復用Table組件的示例代碼

 更新時間:2017年11月18日 15:35:10   作者:Shyla  
本篇文章主要介紹了VUE element-ui 寫個復用Table組件的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

步驟一

先來個基本的表格展示

官例的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ù)據的同時告訴它我的字段名唄

新建一個父組件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>

步驟四

可以根據需求修改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] : [] 
  }
 }
}

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue?監(jiān)聽視頻播放時長的實例代碼

    Vue?監(jiān)聽視頻播放時長的實例代碼

    本文介紹了如何通過源碼實現(xiàn)對視頻實時時長、播放時長和暫停時長的監(jiān)聽,詳細闡述了相關技術的應用方法,幫助開發(fā)者更好地掌握視頻監(jiān)控技術,提高用戶體驗
    2024-10-10
  • Vue.js 2.0 和 React、Augular等其他前端框架大比拼

    Vue.js 2.0 和 React、Augular等其他前端框架大比拼

    這篇文章主要介紹了Vue.js 2.0 和 React、Augular等其他前端框架大比拼的相關資料,React 和 Vue 有許多相似之處,本文給大家提到,需要的朋友可以參考下
    2016-10-10
  • vue結合v-for和input實現(xiàn)多選列表checkbox功能

    vue結合v-for和input實現(xiàn)多選列表checkbox功能

    在Vue中,可通過v-for指令和v-model實現(xiàn)多選列表功能,首先,使用v-for指令遍歷數(shù)組生成列表項,每個列表項包含一個復選框,復選框的v-model綁定到一個數(shù)組變量,用于存儲選中的值,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Vue項目部署到IIS后刷新報錯404的問題及解決方法

    Vue項目部署到IIS后刷新報錯404的問題及解決方法

    這篇文章主要介紹了Vue項目部署到IIS后,刷新報錯404,這里需要用到URL重寫工具?--URL?Rewrite,需要的話需要自己下載安裝,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • Vue中使用Lodop插件實現(xiàn)打印功能的簡單方法

    Vue中使用Lodop插件實現(xiàn)打印功能的簡單方法

    這篇文章主要給大家介紹了關于Vue中使用Lodop插件實現(xiàn)打印功能的簡單方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • vite.config.js配置入門詳解

    vite.config.js配置入門詳解

    本文主要介紹了vite.config.js配置入門詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • vue3.0中sass全局的使用過程

    vue3.0中sass全局的使用過程

    這篇文章主要介紹了vue3.0中sass全局的使用過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue項目配置使用flow類型檢查的步驟

    vue項目配置使用flow類型檢查的步驟

    這篇文章主要介紹了vue項目配置使用flow類型檢查的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • ElementUI的this.$notify.close()調用不起作用的解決

    ElementUI的this.$notify.close()調用不起作用的解決

    本文主要介紹了ElementUI的this.$notify.close()調用不起作用的解決,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • vue實例中data使用return包裹的方法

    vue實例中data使用return包裹的方法

    今天小編就為大家分享一篇vue實例中data使用return包裹的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08

最新評論

临邑县| 宁化县| 威信县| 讷河市| 兴安盟| 信阳市| 康定县| 高要市| 华宁县| 堆龙德庆县| 彰化市| 浦东新区| 岳普湖县| 修水县| 武穴市| 香港| 攀枝花市| 巴青县| 玉龙| 儋州市| 安多县| 镇赉县| 桐梓县| 房山区| 洮南市| 扶余县| 海门市| 延安市| 镶黄旗| 司法| 突泉县| 海兴县| 安庆市| 正定县| 汶上县| 沂源县| 南漳县| 上饶市| 沙湾县| 黔江区| 涡阳县|