Vue 中如何避免在動態綁定 類別 出現空 類別 的情況?以下這篇文章跟大家介紹Vue中避免在動態綁定類別時出現空類別情況的方法,希望對大家有幫助!
【相關推薦:vuejs影片教學】
傳遞空字串,這可能會導致DOM 輸出中的類別為空。在三元運算子中,我們可以返回"null",這可以確保DOM 中沒有空類別?
<!-- ❌ --> <div> <!-- <div class> --> <!-- ✅ --> <div> <!-- <div> --
方案1:使用空字串''
我們使用三元運算子根據isBold
是true
還是falsy
來有條件地設定適當的類別。在下面範例中,如果isBold
是 真值
,類別就被設定為bold
。如果是虛值
的,它將傳回一個空字串''
。
html
<div :class="isBold ? 'bold' : ''"></div>
js
#data() { return { isBold: false } }
最終渲染的樣子:
<div class></div> <!-- ? 啊! 空的class --><p>如果<code> isBold</code>為<code>true</code>,會被渲染為:</p> <pre class="brush:php;toolbar:false"><div></div>
方案2:使用null
接著,來看看如果我們給類別賦值為null
會發生什麼事。
html
<div></div>
js
#data() { return { isBold: false } }
最終渲染的樣子:
<div></div>
如果 isBold
為true
,會被渲染為:
<div></div>
方案3:使用undefined
順便說一句,undefined
#也可以正常工作?
<div></div>
<div></div>
虛值
下面這些是JS 中的虛值。因此,如果isBold
是這些值中的任何一個,它將傳回三元運算子的假的情況。
false undefined null NaN 0 "" or '' or `` (empty string)
使用物件語法重構
對於上面的事例,使用物件語法會更好:
<div></div>
使用三元運算子的一個更好的場景是設定多個類別。
<div></div>
使用 &&
設定類別
我們看看另一個場景,看看它是否有效。
<div></div>
&&
不僅是邏輯運算符,它實際上可以產生一個值。因此,如果isBold
為真值,則傳回bold
。但是,如果isBold
是虛值,則傳回isBold
的值。
強調最後一點-它將傳回isBold
的值。因此,取決於isBold
的值是什麼,我們原來有空類別的問題仍然存在。讓我們來看一些例子。
範例A:isBold
等於false
<div></div>
這仍然會渲染空類別?
<div></div>
範例B:isBold
等於null
<div></div>
由於isBold
為null
,因此空類別消失了?。
<div></div>
&&
沒錯-實際上,它只是完成其工作。只是我們需要一個特定的回傳值。在其他方面,我們不能渲染空類,我們必須傳遞null
或undefined
。除了這兩個的任何其他虛值都是不行的。因為這很容易被遺漏,所以我更喜歡更明確的三元運算符,或者只是物件語法?。
空類別屬性是否錯誤?
我嘗試使用W3C Markup Validation Service進行檢查,兩種語法確實都可以通過。
<!-- Pass --> <div>...</div> <!-- Pass --> <div>...</div>
深入到HTML標準: HTML Standard: Empty attribute syntax,它似乎不允許空屬性。
但是...
但是這種有效性不適用於id
。因為空id
被認為是無效的。
<!-- Fail --> <div>...</div> <!-- Fail --> <div>...</div> <!-- Pass --> <div>...</div>
❌ 錯誤:ID不能為空字串。
總結
由於空類別被認為是有效的,並且規範不反對它,因此所有這些都由你自己選擇。它是你的程式碼庫,你可以決定如何處理它。如果你想保持HTML輸出的整潔,則可以將null
傳遞給 Vue 三元運算子。如果這對你來說無關緊要,那就算了。這裡沒有正確的答案,這完全取決於你的偏好?
以上是聊聊怎麼Vue中避免在動態綁定類別時出現空類別的情況!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Vue.js和React各有優缺點,選擇時需綜合考慮團隊技能、項目規模和性能需求。 1)Vue.js適合快速開發和小型項目,學習曲線低,但深層嵌套對象可能導致性能問題。 2)React適用於大型和復雜應用,生態系統豐富,但頻繁更新可能導致性能瓶頸。

Vue.js適合小型到中型項目,React適合大型項目和復雜應用場景。 1)Vue.js易於上手,適用於快速原型開發和小型應用。 2)React在處理複雜狀態管理和性能優化方面更有優勢,適合大型項目。

Vue.js和React各有優勢:Vue.js適用於小型應用和快速開發,React適合大型應用和復雜狀態管理。 1.Vue.js通過響應式系統實現自動更新,適用於小型應用。 2.React使用虛擬DOM和diff算法,適合大型和復雜應用。選擇框架時需考慮項目需求和團隊技術棧。

Vue.js和React各有優勢,選擇應基於項目需求和團隊技術棧。 1.Vue.js社區友好,提供豐富學習資源,生態系統包括VueRouter等官方工具,支持由官方團隊和社區提供。 2.React社區偏向企業應用,生態系統強大,支持由Facebook及其社區提供,更新頻繁。

Netflix使用React來提升用戶體驗。 1)React的組件化特性幫助Netflix將復雜UI拆分成可管理模塊。 2)虛擬DOM優化了UI更新,提高了性能。 3)結合Redux和GraphQL,Netflix高效管理應用狀態和數據流動。

Vue.js是前端框架,後端框架用於處理服務器端邏輯。 1)Vue.js專注於構建用戶界面,通過組件化和響應式數據綁定簡化開發。 2)後端框架如Express、Django處理HTTP請求、數據庫操作和業務邏輯,運行在服務器上。

Vue.js與前端技術棧緊密集成,提升開發效率和用戶體驗。 1)構建工具:與Webpack、Rollup集成,實現模塊化開發。 2)狀態管理:與Vuex集成,管理複雜應用狀態。 3)路由:與VueRouter集成,實現單頁面應用路由。 4)CSS預處理器:支持Sass、Less,提升樣式開發效率。

Netflix選擇React來構建其用戶界面,因為React的組件化設計和虛擬DOM機制能夠高效處理複雜界面和頻繁更新。 1)組件化設計讓Netflix將界面分解成可管理的小組件,提高了開發效率和代碼可維護性。 2)虛擬DOM機制通過最小化DOM操作,確保了Netflix用戶界面的流暢性和高性能。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能