最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

為什么vue中不建議使用空字符串作為className

 更新時(shí)間:2021年09月23日 16:29:00   作者:油炸皮卡丘  
本文主要介紹了為什么vue中不建議使用空字符串作為className,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在我們用三元表達(dá)式給DOM元素設(shè)置class時(shí),使用空字符串,會(huì)導(dǎo)致渲染出一個(gè)沒(méi)有值的空class, 為了避免這種情況出現(xiàn),可以使用null來(lái)代替空字符串。

<!-- ❌ -->
<div :class="isBold ? 'bold' : ''">
<!-- <div class> -->

<!-- ✅ -->
<div :class="isBold ? 'bold' : null">
<!-- <div> -->

比較空字符串''和null

繼續(xù)來(lái)分析上面2行代碼

情況1:使用空字符串''

我們使用三元操作符,來(lái)決定是否給元素綁定class, isBold為true時(shí)綁定,返回bold,否則,返回''

<div :class="isBold ? 'bold' : ''"></div>
data() {
  return {
    isBold: false
  }
}

這時(shí),渲染結(jié)果如下

<div class></div>
<!-- 😱 空的class -->

如果isBold為true,渲染結(jié)果如下

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

情況2:使用null

看看使用null的渲染結(jié)果

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

data() {
  return {
    isBold: false
  }
}

渲染結(jié)果如下

<div></div>
<!-- ✅ 很好 無(wú)空class>

如果isBold為false,渲染結(jié)果如下

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

情況3:使用undefined

undefined和null的效果一樣

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

<div></div>
<!-- ✅ 很好 無(wú)空class>

關(guān)于False值

當(dāng)isBold的值為以下值時(shí),三元表達(dá)式返回的也是假值

false
undefined
null
NaN
0
"" or '' or `` (empty string)

使用對(duì)象的形式綁定class

使用對(duì)象的形式更加可讀

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

但三元表達(dá)式最佳的用處是在綁定復(fù)雜的class時(shí)

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

使用 &&綁定class

來(lái)看看另外一種情況

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

&& 不僅是一個(gè)邏輯操作符,它同樣可以返回值,正如上面的代碼,如果isBold為真,它會(huì)返回bold,但是isBold為假的時(shí)候呢?

案例1:isBold為false

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

這個(gè)時(shí)候回返回空class

<div class></div>

案例2:isBold為null

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

為null時(shí)不會(huì)有空class

<div></div>

案例3:isBold為undefined

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

為undefined時(shí)也不會(huì)有空class

<div></div>

造成上面這種情況的出現(xiàn)不是&&的問(wèn)題,它只是用來(lái)做判斷并返回值而已

所以,如果我們想要使用&&時(shí)避免返回空class,最好用null或者undefined

但我更推薦大家使用對(duì)象的或者數(shù)組綁定的語(yǔ)法去設(shè)置class

空class就一定不對(duì)嗎?

在W#C的標(biāo)準(zhǔn)中, 空class也是可以用的

<!-- 無(wú)錯(cuò)誤 -->
<div class>...</div>

<!-- 無(wú)錯(cuò)誤 -->
<div>...</div>

HTML的語(yǔ)法用也沒(méi)要求不準(zhǔn)使用空的屬性

但是,為了代碼的可讀性,建議大家不要使用空屬性,特別是在需要操作DOM屬性做判斷時(shí)

空的屬性很容易造成難以察覺(jué)的錯(cuò)誤

e.target.classList

e.className

img.src

...

但是...
空的id屬性是不被允許的

<!-- 錯(cuò)誤 -->
<div id>...</div>

<!-- 錯(cuò)誤 -->
<div id="">...</div>

<!-- 正確 -->
<div id="name">...</div>

❌ Error: An ID must not be the empty string.

到此這篇關(guān)于為什么vue中不建議使用空字符串作為className的文章就介紹到這了,更多相關(guān)vue 空字符串作為className內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue2.0實(shí)現(xiàn)前端星星評(píng)分功能組件實(shí)例代碼

    vue2.0實(shí)現(xiàn)前端星星評(píng)分功能組件實(shí)例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了vue2.0實(shí)現(xiàn)前端星星評(píng)分功能組件,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-02-02
  • Vue3中使用vuedraggable拖拽實(shí)戰(zhàn)教程

    Vue3中使用vuedraggable拖拽實(shí)戰(zhàn)教程

    這篇文章主要介紹了Vue3中使用vuedraggable拖拽實(shí)戰(zhàn)教程,文中通過(guò)示例介紹了vue3拖拽組件vuedraggable的使用demo,需要的朋友可以參考下
    2023-06-06
  • 手把手教學(xué)vue的路由權(quán)限問(wèn)題

    手把手教學(xué)vue的路由權(quán)限問(wèn)題

    這篇文章主要介紹了手把手教學(xué)vue的路由權(quán)限問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Vue提示框組件vue-notification使用詳解

    Vue提示框組件vue-notification使用詳解

    這篇文章主要介紹了Vue提示框組件vue-notification使用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • vue2.0 解決抽取公用js的問(wèn)題

    vue2.0 解決抽取公用js的問(wèn)題

    這篇文章主要介紹了vue2.0 解決抽取公用js的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • 實(shí)例解析Vue.js下載方式及基本概念

    實(shí)例解析Vue.js下載方式及基本概念

    vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架。接下來(lái)通過(guò)本文給大家分享Vue.js下載方式及基本概念,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 詳解vite如何支持cjs方案示例

    詳解vite如何支持cjs方案示例

    這篇文章主要介紹了vite如何支持cjs方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • vuex?設(shè)計(jì)思路和實(shí)現(xiàn)方式

    vuex?設(shè)計(jì)思路和實(shí)現(xiàn)方式

    這篇文章主要介紹了vuex?設(shè)計(jì)思路和實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue開(kāi)發(fā)實(shí)現(xiàn)評(píng)論列表

    vue開(kāi)發(fā)實(shí)現(xiàn)評(píng)論列表

    這篇文章主要為大家詳細(xì)介紹了vue開(kāi)發(fā)實(shí)現(xiàn)評(píng)論列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue簡(jiǎn)介、引入、命令式與聲明式編程詳解

    Vue簡(jiǎn)介、引入、命令式與聲明式編程詳解

    原生開(kāi)發(fā)和Vue開(kāi)發(fā)的模式和特點(diǎn),我們會(huì)發(fā)現(xiàn)是完全不同的,這里其實(shí)涉及到兩種不同的編程范式:命令式編程和聲明式編程,下面這篇文章主要給大家介紹了關(guān)于Vue簡(jiǎn)介、引入、命令式與聲明式編程的相關(guān)資料,需要的朋友可以參考下
    2022-10-10

最新評(píng)論

萨嘎县| 珲春市| 天长市| 秦皇岛市| 平南县| 黄浦区| 焦作市| 诸城市| 綦江县| 万安县| 大兴区| 综艺| 璧山县| 肇源县| 绍兴市| 大兴区| 彭水| 阜新市| 南开区| 辉南县| 治多县| 抚顺市| 岑巩县| 静安区| 许昌市| 那曲县| 固阳县| 扶绥县| 同心县| 湄潭县| 中牟县| 宁陵县| 四川省| 永昌县| 洛隆县| 若羌县| 恭城| 中阳县| 高陵县| 木兰县| 梅河口市|