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

相关推荐
whalekv2 小时前
10月25日
前端·javascript·vue.js
xuelong-ming3 小时前
uniapp vue3 点击跳转外部网页
vue.js·uni-app
万邦科技Lafite4 小时前
京东按图搜索京东商品(拍立淘) API (.jd.item_search_img)快速抓取数据
开发语言·前端·数据库·python·电商开放平台·京东开放平台
Never_Satisfied6 小时前
在JavaScript / Node.js / 抖音小游戏中,使用tt.request通信
开发语言·javascript·node.js
一只小透明啊啊啊啊7 小时前
Java Web 开发的核心组件:Servlet, JSP,Filter,Listener
java·前端·servlet
你的人类朋友7 小时前
设计模式有哪几类?
前端·后端·设计模式
Yeats_Liao8 小时前
Go Web 编程快速入门 10 - 数据库集成与ORM:连接池、查询优化与事务管理
前端·数据库·后端·golang
啃火龙果的兔子8 小时前
前端八股文react篇
前端·react.js·前端框架
打小就很皮...8 小时前
React 实现 i18next 中英文切换集成
前端·react.js·i18next