vue使用动态样式与计算属性实现多变量判断

2023-11-06

一、动态class绑定

代码:class的计算属性着重于减少页面内含大量逻辑判断导致代码阅读性差

<template>
	<div class='Event' :class='classObject'>
		通过动态样式绑定与计算属性实现color变化
	</div>
</template>
<script>
export default {
	data(){
		return{
			state:1,
		}
	},
	computed: {
	  classObject: function () {
	  	// 计算属性中 `this` 指向 vm 实例 即可以通过this访问data中的值
	    switch(this.state){
			case 1 :
			case 2 :
			return 'submit'
			case 3 :
			return 'supply'
			case 4 :
			case 5 :
			case 6 :
			return 'push'
		}
	  }
	}
}
</script>
<style>
	.submit{color:'blue'}
	.submit{color:'red'}
	.submit{color:'pink'}
</style>

vue的计算属性会基于vue的响应式依赖进行缓存,只有当响应式依赖发生改变时才会重新求值,否则会立即返回之前的计算结果,而不会再次执行函数。
即state的值不发生更改,计算属性便不会多次触发。
此方法可以避免动态绑定上性能开销较大的运算,如多层的三目运算符,多个变量判断等等。
但使用计算属性必然会产生缓存,如果要避免缓存请使用其他方法。

二、动态style绑定

代码:style需传入值或直接填入样式,返回值需为字符串。主要在于可灵活搭配,对传参格式不限定但会导致逻辑代码和返回代码过多,减低代码阅读性

<template>
	<div class='Event' :style='styleObject'>
		style传入值方法实现动态样式绑定
	</div>
	<div class='Event' :style='styleListObject'>
		style传入样式方法实现动态样式绑定
	</div>
</template>
<script>
export default {
	data(){
		return{
			color:'pink',
			style:'font-size:28px;color:blue',
		}
	},
	computed: {
	  styleObject: function () {
	  	// 计算属性中 `this` 指向 vm 实例 即可以通过this访问data中的值
	  	return `color:${this.color}`
	  },
	  styleListObject:function (){
		return this.style
	  }
	}
}
</script>

总结

在实现上,动态class绑定更适合页面内判断,使页面判断更加可观。而动态style绑定适合作为组件样式更换,在使用动态style时需避免大量逻辑堆积在一个计算属性中。
在本文例子上,可使用数组语法进行优化,避免多个判断同时出现
如:

<template>
	<div class='Event' :style='[classObject,styleObject]'>
		有事没事的小帅哥,靓女们点个关注谢谢啦。
	</div>
</template>
<script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue使用动态样式与计算属性实现多变量判断 的相关文章

随机推荐

  • BSN-DDC 基础网络关键知识点(五)跨链机制、官方 SDK 说明、开发资料汇总

    id BSN 2021 公众号 BSN研习社 2022年1月25日 区块链服务网络发展联盟 简称 BSN联盟 上线推出了 BSN DDC基础网络 并进入试商用阶段 同时 BSN DDC官网门户 ddc bsnbase com 上线发布 供D
  • C# 写入二进制文件

    试验1 using System using System IO using System Runtime Serialization Formatters Binary namespace 创建二进制文件 Serializable cla
  • 利用ChatGPT做市场营销的终极指南【建议收藏】

    ChatGPT是一种基于AI技术的语言模型 它可以与用户进行对话和交互 它被广泛应用于各个领域 包括市场营销 作为一名市场营销人员 您可以使用ChatGPT来获得创意 解决问题和生成内容 下面是190个ChatGPT提示 可帮助营销人员更好
  • C语言:数组的应用2——扫雷(递归实现地图变化)

    之前呢跟大家分享了二维数组实现的小游戏 三子棋 井字棋 大家都看懂了吗 今天给大家分享一下用数组实现的扫雷小游戏 先看看最终的效果吧 我设计的这个扫雷游戏 可以让玩家自己选择游戏难度 有简单 适中 困难三种模式 并利用递归的方式去改变地图
  • ThreadPoolExecutor类讲解

    一 ThreadPoolExecutor类讲解 1 线程池状态 五种状态 线程池 的状态 说明 RUNNING 允许提交并处理任务 SHUTDOWN 不允许提交新的任务 但是会处理完已提交的任务 STOP 不允许提交新的任务 也不会处理阻塞
  • 睿智的智能优化算法4——进化策略(Evolution Strategy)

    睿智的智能优化算法4 进化策略 Evolution Strategy 1 算法思路 1 1 杂交方式 1 2 基因突变 1 3 淘汰低适应度个体 2 与遗传算法对比 2 1 相同点 2 2 不同点 实现代码 GITHUB下载连接 遗传算法是
  • 字体文件只有本地服务器,解决字体文件Font跨域权限问题

    问题描述 Font from origin http trunk supply chain com has been blocked from loading by Cross Origin Resource Sharing policy
  • 海康、大华网络摄像机RTSP URL格式组成及参数配置

    经常有开发者咨询我们关于海康 大华网络摄像机RTSP url拼接规则和相关参数配置 虽然很简单 考虑到资料不全 写个博客记录下 1 海康摄像机 在IE浏览器输入网络摄像机的IP地址 输入配置的用户名 密码 登陆 视频 1 码率类型 主码流和
  • js逆向不用扣代码系列(2)—3分钟快速破解猿人学第16题(webpack初体验)

    网址 http match yuanrenxue com match 16 1 加密参数分析 进行翻页请求抓包 发现加密参数为m 打上xhr断点 调试堆栈 发现m加密代码位置在9431行 r m n e 528 btoa p s p s为时
  • Kubernetes CoreDNS Plugin/loop:Seen "HINFO IN xxxxxxx." more than twice,loop detected 问题解决方法

    前几天在自己的实验室环境里面搭建了一个简单的k8s环境 该环境是基于kubeadm搭建的single master节点 并且有两台计算节点 可是环境搭建好了以后 CoreDNS一直存在报错 查看coredns日志 报错内容如下 于此同时我还
  • temu的使用

    temu对进程的分析是建立在虚拟机上的 temu工具依赖于qemu qemu是模拟处理器 安装temu时qemu就已经安装好了 使用temu时 首先要制作一个映像 然后通过temu启动该映像进入虚拟机 需要注意的是 如果你在实际ubuntu
  • android 首页图标

  • 绘制单个条形图与多个条形图

    绘制单个条形图 案例 假设你获取到了某年内地电影票房前20的电影 列表a 和电影票房数据 列表b 那么如何更加直观的展示该数据 a 战狼2 速度与激情8 功夫瑜伽 西游伏妖篇 变形金刚5 最后的骑士 摔跤吧 爸爸 加勒比海盗5 死无对证 金
  • 使用JavaMail发送邮件时嵌入公司logo图片

    使用JavaMail发送邮件时嵌入公司logo图片 第一种方式 img 标签和 logo 图片链接 第二种方式 使用 img 标签和图片 base64 字符串 第三种方式 推荐 将 logo 当做附件一起发送并设置 ContentID 再使
  • [1120]Maven依赖冲突解决之exclusions

    1 背景 1 作为java生态下开发者 往往需要使用大量线程的第三方库 一般都是以jar包形式存在 2 maven作为事实上主流的jar包依赖管理工具 Idea和Eclipse都支持创建maven工程来管理jar包依赖 3 使用maven进
  • C语言实现原码补码输出

    今天复习了一下C中的原码补码的知识 顺便编程使用for while do while goto recursive 实现了补码和原码的输出 核心思想 借助一个字符串数组 将得到的原码和补码存储到相应数组中去 在计算原码的时候 由于存在负数的
  • 单片机C语言基础

    目录 前言 一 C语言基础 1 1 逻辑运算 1 2 字长定义 1 3 布尔型变量 1 4 符号 1 5 位段 1 6 typedef关键字 1 7 volatile关键字 二 代码规则 前言 介绍一下单片机开发的C语言使用 个人会慢慢完善
  • 第四次 python

    元组练习题 tup nihao wohao dajiahao a 计算元组长度并输出 b 获取元组第2个元素并输出 c 获取元素第2 3个元素并输出 d 使用for循环遍历输出元组 e 使用for len range输出元组的索引 f 将元
  • JAVA实现用户输出正整数重复出现的次数并打印(最大数字不超过10)

    package day1 实现用户输出正整数重复出现的次数并打印 public class TestSameNum public static void main String args int arr 1 2 3 4 5 6 7 1 2
  • vue使用动态样式与计算属性实现多变量判断

    一 动态class绑定 代码 class的计算属性着重于减少页面内含大量逻辑判断导致代码阅读性差