关于vue中slot-scope的使用

使用场景

在开发中我们遇到表格组件时,往往需要根据状态对某一行的数据进行不同的展示,这是我们需要对表格的某一行进行操作,此时就可以使用vue为我们提供的slot-scope(作用域插槽)

使用方法

关于vue2中的写法可以参考以下博客
点击查看

写vue2中的 slot-scope=‘scope’ 会出现以下报错信息
slot-scope are deprecated
PS:在vue3中该功能已经废弃

可以尝试用以下方法解决报错

<template>
 <div class="main">
     <el-table
    :data="tableData"
    style="width: 100%"
    :row-class-name="tableRowClassName"
  >
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
    <el-table-column prop="status" label="Status">
        <template #default="scope">
           {{ scope.row.status == 1
                ? "待办"
                : scope.row.status == 2
                ? "处置中"
                : scope.row.status == 3 
                ? "完成" : '任务失败'}}

        </template>
    </el-table-column>
  </el-table>
 </div>
</template>

<script lang="ts" setup>
interface User {
  date: string
  name: string
  address: string
}

const tableRowClassName = ({
  row,
  rowIndex,
}: {
  row: Array<any>
  rowIndex: number
}) => {
  if (rowIndex === 1) {
    return 'warning-row'
  } else if (rowIndex === 3) {
    return 'success-row'
  }
  return ''
}

const tableData: Array<any> = [
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    status: 1
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    status: 2

  },
  
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    status: 3

  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    status: 4

  },
]
</script>

<style>
.main{
    width: 800px;
    height: 1000px;
    position: fixed;
    left: calc(50% - 400px);
}
.el-table .warning-row {
  --el-table-tr-bg-color: var(--el-color-warning-light-9);
}
.el-table .success-row {
  --el-table-tr-bg-color: var(--el-color-success-light-9);
}
</style>

注意:#default为插槽的缩写 default可以随意起变量名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值