成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Vue 中如何避免在動(dòng)態(tài)綁定類(lèi)出現(xiàn)空類(lèi)的情況?

開(kāi)發(fā) 前端
我們使用三元運(yùn)算符根據(jù)isBold是true還是falsy來(lái)有條件地設(shè)置適當(dāng)?shù)念?lèi)。在下面示例中,如果isBold是 真值,類(lèi)就被設(shè)置為bold。如果是虛值的,它將返回一個(gè)空字符串''。

 [[338616]]

傳遞空字符串,這可能會(huì)導(dǎo)致 DOM 輸出中的類(lèi)為空。在三元運(yùn)算符中,我們可以返回"null",這可以確保 DOM 中沒(méi)有空類(lèi)🌟

  1. <!-- ❌ --> 
  2. <div :class="isBold ? 'bold' : ''"
  3. <!-- <div class> --> 
  4.  
  5. <!-- ✅ --> 
  6. <div :class="isBold ? 'bold' : null"
  7. <!-- <div> --> 

 

方案 1:使用空字符串 ''

我們使用三元運(yùn)算符根據(jù)isBold是true還是falsy來(lái)有條件地設(shè)置適當(dāng)?shù)念?lèi)。在下面示例中,如果isBold是 真值,類(lèi)就被設(shè)置為bold。如果是虛值的,它將返回一個(gè)空字符串''。

html

  1. <div :class="isBold ? 'bold' : ''"></div> 

js

  1. data() { 
  2.   return { 
  3.     isBold: false 
  4.   } 

最終渲染的樣子:

  1. <div class></div> 
  2. <!-- 😱 啊! 空的class --> 

 

 

 

如果isBold為true,會(huì)被渲染為:

  1. <div class="bold"></div> 

 

 

 

方案 2:使用null

接著,來(lái)看看如果我們給類(lèi)賦值為null會(huì)發(fā)生什么。

html

  1. <div :class="isBold ? 'bold' : null"></div> 

 

 

 

js

  1. data() { 
  2.   return { 
  3.     isBold: false 
  4.   } 

最終渲染的樣子:

  1. <div></div> 
  2. <!-- ✅ Nice, 沒(méi)有空的 class --> 

 

 

 

如果isBold為true,會(huì)被渲染為:

  1. <div class="bold"></div> 

 

 

 

方案 3:使用 undefined

順便說(shuō)一句,undefined也可以正常工作 👍

  1. <div :class="isBold ? 'bold' : undefined"></div> 
  1. <div></div> 
  2. <!-- ✅ Nice, no empty class --> 

虛值

下面這些是 JS 中的虛值。因此,如果isBold是這些值中的任何一個(gè),它將返回三元運(yùn)算符的假的情況。

  1. false 
  2. undefined 
  3. null 
  4. NaN 
  5. "" or '' or `` (empty string) 

使用對(duì)象語(yǔ)法重構(gòu)

對(duì)于上面的事例,使用對(duì)象語(yǔ)法會(huì)更好一些:

  1. <div :class="{ bold: isBold }"></div> 

 

 

 

使用三元運(yùn)算符的一個(gè)更好的場(chǎng)景是設(shè)置多個(gè)類(lèi)。

  1. <div :class="isActive ? 'underline bold' : null"></div> 

 

 

 

使用 && 設(shè)置類(lèi)

我們看看另一個(gè)場(chǎng)景,看看它是否有效。

  1. <div :class="isBold && 'bold'"></div> 

 

 

 

&&不僅是邏輯運(yùn)算符,它實(shí)際上可以產(chǎn)生一個(gè)值。因此,如果isBold為真值,則返回bold。但是,如果isBold是虛值,則返回isBold的值。

強(qiáng)調(diào)最后一點(diǎn)-它將返回isBold的值。因此,取決于isBold的值是什么,我們?cè)瓉?lái)具有空類(lèi)的問(wèn)題仍然存在。讓我們看一些例子。

示例 A:isBold等于false

  1. <div :class="isBold && 'bold'"></div> 
 

 

這仍然會(huì)渲染空類(lèi) 😱

  1. <div class></div> 

 

 

 

示例B:isBold等于null

 

 

由于isBold為null,因此空類(lèi)消失了 。

  1. <div></div> 

 

 

 

&&沒(méi)錯(cuò)-實(shí)際上,它只是完成其工作。只是我們需要一個(gè)特定的返回值。在其他方面,我們不能渲染空類(lèi),我們必須傳遞null或undefined。除了這兩個(gè)的任何其他虛值都是不行的。因?yàn)檫@很容易被遺漏,所以我更喜歡更明確的三元運(yùn)算符,或者只是對(duì)象語(yǔ)法👍。

空類(lèi)屬性是否錯(cuò)誤?

我嘗試使用W3C Markup Validation Service進(jìn)行檢查,兩種語(yǔ)法確實(shí)都可以通過(guò)。

  1. <!-- Pass --> 
  2. <div class>...</div> 
  3.  
  4. <!-- Pass --> 
  5. <div>...</div> 

 

深入到HTML標(biāo)準(zhǔn): HTML Standard: Empty attribute syntax,它似乎不允許空屬性。

但是...

但是這種有效性不適用于id。因?yàn)榭読d被認(rèn)為是無(wú)效的。

  1. <!-- Fail --> 
  2. <div id>...</div> 
  3.  
  4. <!-- Fail --> 
  5. <div id="">...</div> 
  6.  
  7. <!-- Pass --> 
  8. <div id="name">...</div> 

 

錯(cuò)誤:ID不能為空字符串。

總結(jié)

由于空類(lèi)被認(rèn)為是有效的,并且規(guī)范不反對(duì)它,因此所有這些都由你自己選擇。它是你的代碼庫(kù),你可以決定如何處理它。如果你想保持HTML輸出的整潔,則可以將null傳遞給 Vue 三元運(yùn)算符。如果這對(duì)你來(lái)說(shuō)無(wú)關(guān)緊要,那就算了。這里沒(méi)有正確的答案,這完全取決于你的偏好。

作者:Samantha Ming 譯者:前端小智 來(lái)源:medium 原文:https://www.samanthaming.com/tidbits/96-vue-use-null-for-class/

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2020-08-18 22:20:49

vue.jsnullclass

2019-12-09 15:08:30

JavaTomcatWeb

2023-06-21 10:09:50

2024-01-30 08:56:55

性能監(jiān)控性能管理工具內(nèi)存存儲(chǔ)

2009-07-04 10:00:12

電纜傳輸視頻布線

2010-11-05 13:02:58

內(nèi)存iPhone

2021-09-11 22:32:26

Go 綁定 Host

2010-03-11 17:46:29

Pythond類(lèi)

2014-04-23 13:30:23

類(lèi)簇iOS開(kāi)發(fā)

2015-07-30 10:12:32

JavaNullAssert

2010-03-17 10:58:47

Python學(xué)習(xí)筆記

2024-10-09 07:59:10

C#接口信息

2011-06-15 10:49:26

Qt QTableItem

2010-06-28 18:21:36

UML類(lèi)圖設(shè)計(jì)

2009-06-02 10:28:36

JPA繼承類(lèi)Netbeans

2020-09-25 11:30:20

Java判空代碼

2010-07-30 10:37:23

Flex數(shù)據(jù)綁定

2020-08-19 08:29:22

JavaScript 對(duì)象函數(shù)

2020-04-10 10:22:12

Java判空編程語(yǔ)言

2010-03-01 10:45:59

WCF集合類(lèi)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 狠狠操av | 欧美做暖暖视频 | 欧美日韩精品一区 | 日韩专区中文字幕 | 成人在线免费观看av | 国产精品久久久久久吹潮 | 久久久久国产一区二区三区 | 91久久久久久久久久久 | 91久久 | 国产精品99久久久久久动医院 | 古典武侠第一页久久777 | 日韩看片 | 91精品久久久 | 色资源在线观看 | 在线观看国产www | 亚洲三区在线观看 | 97视频网站 | 国产电影一区二区在线观看 | 日韩免费看片 | 免费成人高清在线视频 | 欧美成视频 | 五月天天丁香婷婷在线中 | 亚洲毛片在线 | 日韩精品一区二区三区高清免费 | 精品欧美一区二区三区久久久小说 | 国产精品精品视频一区二区三区 | 亚洲精品短视频 | www性色 | 国产亚洲精品精品国产亚洲综合 | 天天看天天干 | 亚洲瑟瑟 | 第四色狠狠 | 在线一区视频 | 日韩欧美三区 | 色综合网站 | 91久久久久久久久久久 | 日本高清视频在线播放 | 日本免费一区二区三区视频 | 亚洲色综合| 日本久久网| 亚洲精品视频一区二区三区 |