如何巧用三元表达式

一开始我并不喜欢阅读别人的代码,话说程序员最讨厌的事:写代码要写文档、写代码要写注释、别人的代码没有文档、别人的代码没有注释。后来发现阅读别人的代码虽然很枯燥,但是很锻炼逻辑思维,而且还能学到很多东西,比如我下面要说的这个:

三元表达式的巧妙使用

在某天(其实具体是哪天我也忘了),我在阅读别人的代码时发现一串三元表达式,感觉很6,像是打开新世界的大门一样,顿时感觉只有你想不到的,没有别人做不到的。真的是活到老学到死啊。

下面上代码:

<span
      v-for="$index in circles"
      class="circle"
      :style="{
        backgroundColor: activeIndex == $index ? pagerColor : pagerBgColor,
        opacity:
          pagerColor == pagerBgColor
            ? activeIndex == $index
              ? '1'
              : '0.4'
            : '1'
      }"
      :key="$index"
    ></span>

这代码扫一眼看着没毛病啊,就是遍历渲染数据,但是其中三元表达式的使用真的是6到飞起。可能有些大佬一看,有点鄙视我,“垃圾,就一个三元表达式,大惊小怪”,但是我是头一次看到这么写的。其实好多东西不是不会写,而是想不到。就像这个三元表达式,让谁写谁都能写出来,但是就是想不到可以这么写。这也是阅读别人代码的一个好处,可以学到一些骚操作,让自己少写代码,提高工作效率。

回头再说这个三元表达式,我们正常使用三元表达式是这样的:

表达式 (expr1) ? (expr2) : (expr3)  

在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

而上面代码中把表达式中的值又设为一个表达式,满足条件的时候执行表达式再次判断求值,将三元表达式写成了类似于if判断的东西,减少了代码量而且还增加更加容易读懂

:class=“ “的三元表达式写法

<div class="stepbar">
   <div class="stepbar-first"></div>
   <div class="stepbar-first-line"></div>
   <div v-if="item.applyState===5" class="stepbar-gray"></div>
   <div v-else :class="item.applyState===1?'stepbar-red':'stepbar-first'"></div>
   <div v-if="item.applyState!==1&&item.applyState!==5" class="stepbar-first-line"></div>
   <div v-if="item.applyState!==1&&item.applyState!==4&&item.applyState!==5" :class="item.applyState===2&&item.applyState!==3?'stepbar-red':'stepbar-first'"></div>
   <div v-if="item.applyState===4" class="stepbar-gray"></div>
 </div>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持Devmax。 

vue中巧用三元表达式解析的更多相关文章

  1. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. Swift基础-0003

  3. 图书连载12:元组类型、一元、二元和三元运算符、 比较运算符

    其中一元运算符用于处理单个对象,一元前缀运算符出现在对象前,一元后缀运算符出现在对象的后面。三元条件运算符提供了一个非常有效的简写,以根据指定的条件作出相应的选择。Swift支持所有C语言的标准比较运算符。

  4. 2.12 Swift的一元、二元和三元运算符 [Swift原创教程]

    操作符可以分为一元操作符、二元操作符和三元操作符。它属于二元运算符。

  5. 如何在?:三元运算符中重写Swift运算符

    我有以下代码从2.2开始我得到折旧警告,任何想法如何解决这个问题?我有这个解决方案:但这不是很好.怎么样:看起来你可能正在做类似时钟算术的事情.如果是这样,这可以更好地说明:

  6. 为什么没有Swift nil-coalescing三元运算符返回unwrapped类型?

    我读到三元运算符??如果它不是零,则展开一个可选项,但如果我这样做:那么CertainType仍然是一个String?我知道它应该打印“它是牛奶”,但我在控制台中看到的是“它是一个可选的”–其他人遇到了同样的问题?这可能是由字符串插值引起的吗?,它实际上会打印出意外的结果:“it’saOptional”我的猜测是:因为使用了@NSManaged属性,所以在使用时会使用错误的类型(AnyObject?

  7. vue自定义加载指令v-loading占位图指令v-showimg

    这篇文章主要为大家介绍了vue自定义加载指令和v-loading占位图指令v-showimg的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  8. vue使用动画实现滚动表格效果

    这篇文章主要为大家详细介绍了vue使用动画实现滚动表格效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. 关于Vue 监控数组的问题

    这篇文章主要介绍了Vue 监控数组的示例,主要包括Vue 是如何追踪数据发生变化,Vue 如何更新数组以及为什么有些数组的数据变更不能被 Vue 监测到,对vue监控数组知识是面试比较常见的问题,感兴趣的朋友一起看看吧

  10. Vue子组件props从父组件接收数据并存入data

    这篇文章主要介绍了Vue子组件props从父组件接收数据并存入data的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部