首页 > 其他分享 >Vue动态改变css样式的3种方法

Vue动态改变css样式的3种方法

时间:2023-11-20 14:32:24浏览次数:22  
标签:style Vue return 样式 handleStyle color 计算 css deg

在网页开发中,我们经常会遇到动态的改变某个元素样式的需求,在vue里如何实现呢?官网上其实写的很详细了,对象语法,数组语法等。我自己总结了在开发中,个人用的比较多的三种方式

1.class,三元表达式
:class="[occupation === '请选择' ? 'lh60' : 'lh61']"

css
.red{
    color:red;
}
.blue{
    color:blue;
}
2.:style=“xxxxx”,这里xxx可以是个函数,也可以是个计算属性
<div :style="{'width': '350px', 'left': leftWidth+'px', 'top': '200px','display': 'none'}">

leftWidth是一个变量

2.1:函数形式

:style="handleStyle(second)"

handleStyle(deg){
    return { transform: "rotate(" + deg + "deg)"};
}

2.2:计算属性

:style="imgStyle"

computed: {
    imgStyle() {
        return {
            padding: this.spacing + "px",
        };
    },
}

这两种方式很像,区别在于,使用方法的时候,视图刷新,函数就会重新计算一遍值。计算属性,会把以前的值缓存起来,没有变化,就不会计算,直接返回以前的值

标签:style,Vue,return,样式,handleStyle,color,计算,css,deg
From: https://blog.51cto.com/u_16291619/8488722

相关文章

  • 【开源】基于Vue.js的天然气工程运维系统的设计和实现
    一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的天然气工程运维系统,包含工程项目模块、材料档案模块、材料领用单模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,天然气工程运维系统基于角色的访问控制,给工程......
  • #yyds干货盘点#VueRouter模拟实现
    hash模式URL中#号后面的内容作为路径地址监听hashchange事件根据当前路与地址找到对应的组件重新渲染history模式通过history.pushState()方法改变地址栏监听popstate事件根据当前路由地址找到对应组件重新渲染基本使用//1.注册路由插件Vue.use(VueRouter)//2.创建router对......
  • uniapp vue可以通过mixins混入代码,可以通过下面方法混入template
    vue全局混入template方法:在根目录vue.config.js(没有就新增)里添加一下代码//红色部分是混入的自定义vue组件module.exports={chainWebpack:config=>{config.module.rule('vue').use('vue-loader').loader('vue-loader').tap(options=>{......
  • (uniapp)小程序实现自定义弹框,自定义样式showmodal
    在components里新建自定义弹框组件——modal.vue<template><!--自定义弹窗--><viewclass="_showModal"v-show="show"><viewclass="_shade"></view><viewclass="_modalBox">......
  • vue2+element+vue-quill-editor实现富文本框组件(使用链接引入视频+上传本地视频+上传
    参考文档:https://www.duidaima.com/Group/Topic/Vue/12272前提不赘述,npm引入插件并全局导入 components文件夹下创建ArticleEditor.vue:<template><divclass=""><!--富文本框--><quill-editorref="myQuillEditor"v-bind:va......
  • vue3 ts 生命周期函数写法
    写法1import{defineAsyncComponent,ref,reactive,onMounted,nextTick,computed,watch}from'vue';//页面加载时onMounted(()=>{ initResize();});//监听双向绑定modelValue的变化watch( ()=>props.modelValue, ()=>{ initModeValueEcho();......
  • VS CODE,保存自动格式化vue代码配置 流程记录
    进入vscode,ctrl+shift+p,搜索Preferences:OpenUserSettings(json) ,然后把下面配置覆盖到原本的地方 { //vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation":false, //重新设定tabsize "editor.tabSize":2, //#每次保......
  • vue前端项目启动报错:error:0308010C:digital envelope routines::unsupported
    问题描述使用 npmrundev 或者 yarnrundev 时报错:error:0308010C:digitalenveloperoutines::unsupported解决方案修改package.json,在相关构建命令之前加入setNODE_OPTIONS=--openssl-legacy-provider"scripts":{"dev":"setNODE_OPTIONS=--openssl-legacy-provide......
  • vue十六
    <divid="app16"style="text-align:center;margin-top:10%;"><div><inputid="sou"type="text"style="width:40%;"v-model="word"><buttonsty......
  • vue中使用element中的表单展示数据
    要注意表单的data不能写错,只能是tableData  data里面的“item”可以改成别的,无所谓......