1. 创建自定义钩子 useDeviceStatus.js

import { computed } from 'vue';

export function useDeviceStatus(status) {
const statusMap = computed(() => {
const map = {
0: { text: '闲置', color: '' },
1: { text: '在用', color: 'blue' },
2: { text: '待修', color: 'lime' },
3: { text: '在修', color: 'cyan' },
4: { text: '备用', color: 'red' },
5: { text: '调剂', color: 'magenta' },
6: { text: '待报废', color: 'warning' },
7: { text: '报废', color: 'error' },
8: { text: '带病运行', color: 'volcano' }
};
return map[status.value] || { text: '未知状态', color: 'default' };
}); return {
statusMap
};
}

2. 在组件中使用自定义钩子:

<script setup>
import { ref } from 'vue';
import { useDeviceStatus } from './useDeviceStatus.js'; const props = defineProps({
status: {
type: Number,
required: true
}
}); const { statusMap } = useDeviceStatus(ref(props.status));
</script> <template>
<a-tag :color="statusMap.color">{{ statusMap.text }}</a-tag>
</template>

3. 在表格中使用该组件:

<vxe-column field="device_status" title="设备状态">
<template #default="{ row }">
<DeviceStatusTag :status="row.device_status" />
</template>
</vxe-column>

解释

  • useDeviceStatus 是一个自定义的 Composition API 钩子,用于根据设备状态返回对应的文本和颜色。
  • 在组件中,通过 useDeviceStatus 钩子获取状态映射,并在模板中使用 a-tag 来展示。

自定义的 Vue 3 Composition API 钩子,antd标签的更多相关文章

  1. 蒲公英 &#183; JELLY技术周刊 Vol.21 -- 技术周刊 &#183; React Hooks vs Vue 3 + Composition API

    蒲公英 · JELLY技术周刊 Vol.21 选 React 还是 Vue,每个人心中都会有自己的答案,有很多理由去 pick 心水的框架,但是当我们扪心自问,我们真的可以公正的来评价这两者之间的差异 ...

  2. 了解 Vue 的 Compsition API

    在这篇文章中,我将讲讲 Vue 的 Composition API 为什么比之前的 Options API 要好,以及它是如何工作的. Options API 有什么问题 首先,这里不是要大家放弃 O ...

  3. Vue 3.0 Composition API - 中文翻译

    Composition API 发布转载请附原文链接 https://www.cnblogs.com/zgh-blog/articles/composition_api.html 这两天初步了解了下 ...

  4. Vue 3.0 中令人激动的新功能:Composition API

    正如你所期望的那样,Vue 3带来了很多令人兴奋的新功能.值得庆幸的是,Vue团队主要是在当前API的基础上引入了一些补充和改进,而不是进行重大更改,所以已经了解Vue 2的人应该很快就会对新的语法感 ...

  5. Vue 3.x Composition API

    Vue 3.x Composition API setup 调用时机 创建组件实例,然后初始化 props ,紧接着就调用setup 函数; 从生命周期钩子的视角来看,它会在 beforeCreate ...

  6. 来自 Vue 3.0 的 Composition API 尝鲜

    来自 Vue 3.0 的 Composition API 尝鲜:https://segmentfault.com/a/1190000020205747

  7. 好久没发文了,一篇Vue3的Composition API使用奉上

    Composition API Composition API是Vue3中推荐的组件代码书写方式,相较于传统的Options API来说,它能让业务逻辑处理和后期代码维护变的更加简单. 首先我们来看O ...

  8. 学习 vue3 第一天 vue3简介,创建vue3项目 Composition Api 初识

    前言: 从今天开始来和大家一起学习 vue3 相信大家都不陌生,已经火了一段时间了,但是还是有不少人没有学习,那就跟着六扇老师来简单的入个门 废话不多说,来开始今天的学习 Vue3 简介: 2020年 ...

  9. Vue.js(25)之 vue全局配置api介绍

    本文介绍的全局api并不在Vue的构造函数内,而是在Vue构造器外面提供这些方法,让我们扩展新功能. 1. vue.extend(options) 参考:https://www.w3cplus.com ...

  10. Vue3 Composition API写烦了,试试新语法糖吧—setup script

    前言 Vue3发布近一年了,相信大家对Vue3的新特性,新语法都很熟悉了.那么在使用Composition API的过程中,有没有觉得整个过程比较繁琐.比如你的模板里用到了大量的state和方法的时候 ...

随机推荐

  1. 认识Token和Cookie

    认识Token和Cookie 1.token和cookie有什么区别? ​ 1.1 存储位置及方式:Cookie是浏览器用来存储本地信息的文件,有一定的存储限制,而Token是由服务器按一定算法生成的 ...

  2. 记录小程序跳转h5,然后h5涉及下载文件的问题

    小程序跳转h5中,可以在小程序增加一个页面使用webView方式嵌套三方小程序,不过需要配置白名单 由于小程序的限制,不能在嵌套的h5中进行文件下载 网上也没有很好的解决方法,解决方法是再跳到小程序带 ...

  3. 开源搜索引擎Lucene、Solr、Sphinx等优劣势比较

    以下重点介绍最常用的开源搜素引擎: 1.Lucene 2.Solr 3.Elasticsearch 4.Sphinx 5.各自的特点和优劣势选型比较 开源搜索引擎分类 主要分为两类:Java开发和C+ ...

  4. LOJ题目选做

    你妈,机房断电写了一大堆没了 题目大概是 https://vjudge.net/contest/633974 里我做的题 和joisc2014的题

  5. datagrip中调用oracle存储过程

    declare mess varchar2(300); begin P_DETAIL_PROC(参数1,...,mess); DBMS_OUTPUT.PUT_LINE(mess); end; P_DE ...

  6. 《中国电信天翼云PON SD-WAN技术白皮书》来了,这份技术指南不要错过!

    5月17日,在中国电信第三届科技节·上海站暨517世界电信日活动上,天翼云联合中国电信上海公司正式发布<中国电信天翼云PON SD-WAN技术白皮书>,为中国电信深入实施"云转数 ...

  7. 阿里的DataV和QuickBi区别

    首先说下DataV吧 分为老版和新版(二者之间没有什么太大的差别,存在的基本都是组件上的配置或是更多不同组件的新增,但是如果你是在项目上进行开发,你首先要知道客户用的DataV用的是什么版本,如果你们 ...

  8. 取消浏览器中记住密码自动填充时弹出Windows安全中心的验证

    1.问题描述 我们在使用谷歌浏览器的过程中,经常会将一些账号和密码记住在浏览器中,方便下次通过浏览器自动填充. 此方式虽然方便,但是有时候会遇到一种情况,那就是每次在浏览器中使用自动填充的时候,需会弹 ...

  9. 深入掌握 SQL 深度应用:复杂查询的艺术与技巧

    title: 深入掌握 SQL 深度应用:复杂查询的艺术与技巧 date: 2025/2/10 updated: 2025/2/10 author: cmdragon excerpt: SQL(结构化 ...

  10. CH340区别

    CH340区别 CH340G  USB转串⼝,推出时间最早,需外挂晶振,应⽤最⼴SOP16 CH340C  USB转串⼝,内置晶振,引脚兼容CH340G SOP16 CH340E  USB转串⼝,内置 ...