91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-09-24 09:20:05 來源:億速云 閱讀:117 作者:柒染 欄目:開發技術

本篇文章為大家展示了vue中為什么不建議使用空字符串作為className,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

    在我們用三元表達式給DOM元素設置class時,使用空字符串,會導致渲染出一個沒有值的空class, 為了避免這種情況出現,可以使用null來代替空字符串。

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

    比較空字符串''和null

    繼續來分析上面2行代碼

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

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

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

    這時,渲染結果如下

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

    如果isBold為true,渲染結果如下

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

    情況2:使用null

    看看使用null的渲染結果

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

    渲染結果如下

    <div></div>
    <!-- ? 很好 無空class>

    如果isBold為false,渲染結果如下

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

    情況3:使用undefined

    undefined和null的效果一樣

    <div :class="isBold ? 'bold' : undefined"></div>
    <div></div>
    <!-- ? 很好 無空class>

    關于False值

    當isBold的值為以下值時,三元表達式返回的也是假值

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

    使用對象的形式綁定class

    使用對象的形式更加可讀

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

    但三元表達式最佳的用處是在綁定復雜的class時

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

    使用 &&綁定class

    來看看另外一種情況

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

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

    案例1:isBold為false

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

    這個時候回返回空class

    <div class></div>

    案例2:isBold為null

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

    為null時不會有空class

    <div></div>

    案例3:isBold為undefined

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

    為undefined時也不會有空class

    <div></div>

    造成上面這種情況的出現不是&&的問題,它只是用來做判斷并返回值而已

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

    但我更推薦大家使用對象的或者數組綁定的語法去設置class

    空class就一定不對嗎?

    在W#C的標準中, 空class也是可以用的

    <!-- 無錯誤 -->
    <div class>...</div>
    
    <!-- 無錯誤 -->
    <div>...</div>

    HTML的語法用也沒要求不準使用空的屬性

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

    空的屬性很容易造成難以察覺的錯誤

    e.target.classList

    e.className

    img.src

    ...

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

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

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

    上述內容就是vue中為什么不建議使用空字符串作為className,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    vue
    AI

    四子王旗| 永登县| 宿州市| 格尔木市| 全州县| 尼勒克县| 青川县| 陕西省| 沁源县| 寿阳县| 开鲁县| 禄劝| 佳木斯市| 青海省| 吴堡县| 沙河市| 贵州省| 鄂托克前旗| 靖安县| 武安市| 达日县| 玛沁县| 新巴尔虎左旗| 和政县| 夏邑县| 梨树县| 武汉市| 桃江县| 云安县| 高淳县| 全州县| 白银市| 达尔| 陕西省| 方城县| 台山市| 浪卡子县| 南雄市| 金湖县| 观塘区| 淅川县|