vue3 全局定义动态样式

  1. 自定义需要的样式js文件
javascript 复制代码
// stateColor.js
export default {
    mounted(el, binding) {
        setStyle(el, binding.value)
    },
    updated(el, binding) {
        setStyle(el, binding.value)
    }
}

function setStyle(el, stateCd) {
    const cd = Number(stateCd)

    if ([4, 7].includes(cd)) {
        el.style.color = 'red'
        el.style.fontWeight = 'bold'
        // 可扩展其它样式
        // el.style.fontSize = '14px'
        // el.style.textDecoration = 'underline'
    } else if (cd == 3) {
        el.style.color = 'blue'
        el.style.fontWeight = 'normal'
    } else {
        el.style.color = 'gray'
        el.style.fontWeight = 'normal'
    }
}
  1. main.js注册
javascript 复制代码
import stateColor from '~/composables/stateColor' // 引用
 

const app = createApp(App);
(async () => {

    app.directive('state-color', stateColor);

    app.mount('#app');
})();

3.在vue文件中运用

javascript 复制代码
<template>
    <div v-state-color="item.PRO_STATE_CD"> 哈哈哈 </div>
</template>

4.效果:

相关推荐
kyriewen10 分钟前
面试官让我用 AI 重构一个 8 年陈的 React 组件——他说他不看代码,只看我会不会拆
前端·javascript·面试
计算机魔术师10 分钟前
700吉瓦「幽灵用电」:美国AI数据中心的抢电闹剧正在失控
前端
IT_陈寒18 分钟前
JavaScript数组排序踩的坑,差点让我加班到凌晨
前端·人工智能·后端
风骏时光牛马21 分钟前
提示词工程:大模型交互的核心构建艺术
前端
今日无bug1 小时前
大模型的回答是怎么一个字一个字蹦出来的?前端流式输出解析
前端·llm·agent
计算机魔术师1 小时前
Anthropic 复盘 Claude 模型越权访问真实系统事件并改进对齐与安全措施
前端
掘金者阿豪1 小时前
Seedance 2.0/2.5 虚拟素材能跨 Key 共用吗?一次讲清 Asset ID、账号隔离与 SaaS 素材架构
前端·后端
Jacky19991 小时前
Electron + Vue 3 桌面打字游戏实战:从 VSCode 扩展到独立应用的架构改造
javascript
用户50093768390391 小时前
热敏小票 Web 打印:我在 58/80mm 上折腾的两周
前端·vue.js
XGM1 小时前
一个前端新手的"顿悟"时刻:DOM树、渲染原理和JS动态渲染
前端