日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第十一节:动态绑定class和style

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十一节:动态绑定class和style 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在第六節《教你如何在html中綁定數據》的章節中,我們學會了如何給視圖上的html標簽綁定屬性。

比如,給?<a>?標簽綁定href屬性,簡單回憶一下:


<!-- v-bind指令 -->
<a v-bind:href="link"></a>

<!-- v-bind的縮寫 -->
<a :href="link"></a>

我們用?v-bind?指令(以后都用縮寫的形式)來動態綁定一個標簽的屬性。

而這一節,我們特意來學習一下樣式的動態綁定,因為它與普通屬性的綁定略有不同,并且在實際開發中,動態綁定樣式是一定會用到的知識,所以,還是值得我們用一個章節來學習一下它。

老辦法,我們先來準備一個vue實例:


<div id="app">
?? <p>這是文字</p>
</div>
<script>
??? //創建一個實例vm
??? const vm = new Vue({
??????? el:"#app",
??????? data:{}
??? });
</script>

綁定class

對象語法:我們動態綁定的class的值是一個對象{ },具體怎么寫我們來看看,在上面的代碼上稍做修改:


<div id="app">
?? <p :class="{'active':isActive}">這是文字</p>
</div>
<script>
??? //創建一個實例vm
??? const vm = new Vue({
??????? el:"#app",
??????? data:{
??????????? isActive:true
??????? }
??? });
</script>

我們看到給class綁定的是一個對象:{ ‘active’ : isActive }isActive是我們vm實例的數據,值為true,這與我們平時看到的class是一個字符串值不一樣,這種寫法,最后會被渲染成什么樣呢?

我們運行看看渲染后的效果:

咦?class的值最后被渲染成:“active”,原來,在對象中,若該屬性對應的value為true,則該屬性會被渲染出來,為false,則被渲染出來。

我們盡快驗證一下,我們在上面的代碼上再稍作修改:


<p :class="{
??????? 'active':isActive,
??????? 'danger':isDanger,
??????? 'error':isError
}"
>這是文字</p>

我們給class綁定的對象多了2個key和value,我們看看實例的數據data:


data:{
??? isActive:true,
??? isDanger:true,
??? isError:false
}

isActiveisDanger的值都為true,isError都為false,猜一下,渲染出來的結果是什么?

看效果:

正和我們所預測的一樣,值為true的會被成功渲染出來,為false的則不會被渲染出來。這個時候,你就可以根據需要給渲染出來的class編寫樣式了。

一旦vm實例對應的數據發生變化,比如isActive的值由true變成false,視圖上的’active’ 類也會被刪除,這樣就會實現動態綁定樣式啦!

除了對象語法來綁定class之外,我們還有另一種寫法。

數組語法:用數組語法和對象語法來綁定class,又稍有不同。說了是數組語法,那寫法就肯定不一樣,我們繼續來看看:


<p :class="[activeClass,errorClass]">
??? 這是文字
</p>

這個時候,class綁定的值就是一個數組了,數組有兩個元素[ activeClass , errorClass ],它們對應的值是vm實例的數據data,我們看看vm的數據data:?


data:{
??? activeClass:'active',
??? errorClass:'error'
}

渲染的時候,activeClasserrorClass對應的值就會被渲染成class。看效果圖:

效果跟我們預期一樣。這樣,我們就可以修改vm實例的數據data,來實現動態修改class的樣式了。

綁定內聯樣式style

除了使用class類以外,我們還可以在style內聯樣式上下功夫。

綁定內聯樣式也有2種語法,對象語法和數組語法,但我們這里只介紹常用的對象語法。?


<p :style="{color:colorStyle}">
? 這是文字
</p>?

這個時候,我們綁定的就不是class了,是style屬性。它的值是一個對象:{ color:colorStyle },同樣,我們來看看vm實例的數據data:


data:{
??? colorStyle:'red'
}?

原來colorStyle我們vm實例的數據,值為red。那是不是我們style中的color對應的顏色是就是red呢?

沒錯,看來你已經會舉一反三了。?看渲染效果,我們驗證一樣:

沒毛病,成功渲染成:style=”color:red”。?

因此,我們同樣可以修改vm實例的數據data,來實現動態修改視圖央視的效果。?

本節小結

采取動態綁定class還是動態內聯樣式style,這個要根據需求分析來具體確定。但較為常用的還是使用綁定class。

擴展閱讀

?1.《ECMAScript 6 系列》原創教程

總結

以上是生活随笔為你收集整理的第十一节:动态绑定class和style的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。