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.效果:

相关推荐
流浪码农~10 小时前
Element Plus DatePicker 动态设置每周起始日
前端·vue.js·elementui
jason_yang10 小时前
刚发版就背锅?前端版本控制就靠他version-rocket
前端
如果超人不会飞10 小时前
TinyVue NavMenu导航菜单组件使用指南
前端·vue.js
Jason_chen10 小时前
Linux 3.0 串口机制深度解析:传统8250驱动与基础RS-232/485支持
linux·前端
TPBoreas10 小时前
前端面试问题打靶
前端
赵庆明老师10 小时前
JS检查提交的文件是否合规
开发语言·前端·javascript
禅思院10 小时前
前端请求取消与调度完全指南:从 AbortController 到企业级优先级架构
前端·设计模式·前端框架
颂love10 小时前
Vue的两大生态以及组件通信
前端·javascript·vue.js·typescript
甜汤圆10 小时前
Python 里**自定义数据单元**
前端
cidy_9810 小时前
将 Figma 接入 Codex MCP:从 `/plugins` 到本地插件配置的完整教程
前端