Vue.js 插槽 Slots 实际应用 最近重构项目的时候遇到的...

前端开发中

插槽 Slots 是一个重要的概念

我们可以查看一下vue.js的官方文档

https://cn.vuejs.org/guide/components/slots

类似于连接通道一样

可以把核心代码逻辑搬到另外的地方 做一个引用

而原先的地方可能并不能这样书写

对于这个概念我在vue的官方文档里面找到了demo

大概就是这样

我们先定义组件

FancyButton.vue

然后定义插槽 传入组件的参数都会出现在插槽里面

主页面 App.vue

一个组件可以有多个插槽出口

实际案例

现在是定义了一个表单的columns(列)

我们尝试一下渲染列中的内容 就可以运用插槽

复制代码
      <!-- 判题信息 -->
      <template #judgeInfo="{ record }">
        {{ JSON.stringify(record.judgeInfo) }}
      </template>

      <!-- 展示的是提交时间  -->
      <template #createTime="{ record }">
        {{ moment(record.createTime).format("YYYY-MM-DD") }}
      </template>

      <!-- 展示 点击就能直接访问题目 -->
      <template #questionId="{ record }">
        <router-link :to="'/view/question/' + record.questionId">
          {{ record.questionId }}
        </router-link>
      </template>


      <!-- 修改这里,展示判题状态 -->
      <template #status="{ record }">
        <span v-if="record.status === 0">待判题</span>
        <span v-else-if="record.status === 1">判题中</span>
        <span v-else-if="record.status === 2">成功</span>
        <span v-else-if="record.status === 3">失败</span>
        <span v-else>未知状态</span>
      </template>

最终效果

相关推荐
卸任14 小时前
Vibe coding工具使用心得
前端·ai编程
brien914 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance15 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M15 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写15 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李15 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易15 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
风骏时光牛马15 小时前
前沿视界
前端
kyriewen15 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员
陈随易16 小时前
3000 万人在用的翻译插件,重写一遍就是一门生意
前端·后端·程序员