Vue.js中class與style的增強(qiáng)綁定實(shí)現(xiàn)方法
在web前端應(yīng)用中,操作元素的class列表的內(nèi)聯(lián)樣式style是數(shù)據(jù)綁定style是數(shù)據(jù)綁定的一個(gè)常見需求,因?yàn)樗鼈兌际?strong>attribute,所有可以用v-bind處理它們,但若樣式復(fù)雜,則需要書寫長(zhǎng)串的樣式代碼,這樣一來,字符串拼接就比較麻煩。因此,在將v-bind用于class和style時(shí),Vue.js做了專門的增強(qiáng),表達(dá)式結(jié)果的類型除了字符串之外,還可以是對(duì)象或數(shù)組。
一、v-bind綁定class屬性
若想使用類樣式(即以類名定義元素的樣式,類樣式一般以"."號(hào)開頭命令),可以通過v-bind指令綁定class屬性實(shí)現(xiàn):
(1)綁定class樣式,字符串寫法
適用于:樣式的類名不確定,需要?jiǎng)討B(tài)指定
<div id="root">
<!-- 綁定class樣式,字符串寫法,適用于:樣式的類名不確定,需要?jiǎng)討B(tài)指定 -->
<div class="basic" v-bind:class="moon" @click="doChange">
{{name}}
</div>
</div>
<script>
const vm = new Vue({
el: '#root',
data: {
name: "class和style增強(qiáng)綁定",
moon: "normal"
},
methods: {
doChange() {
var arr = ["happy", "sad", "normal"];
indexof = Math.floor(Math.random() * 3);
this.moon = arr[indexof];
}
}
});
</script>css樣式:
.happy {
border: 4px solid red;
background-color: rgba(255, 255, 0, 0.644);
background: linear-gradient(30deg, yellow, pink, orange);
}
.sad {
border: 4px dashed rgb(2, 197, 2);
background-color: gray;
}
.normal {
background-color: skyblue;
}執(zhí)行結(jié)果:

(2)綁定class樣式,數(shù)組寫法
適用于:要綁定的樣式個(gè)數(shù)不確定,名字也不確定
<div id="root">
<!-- 綁定class樣式,數(shù)組寫法,適用于:要綁定的樣式個(gè)數(shù)不確定,名字也不確定 -->
<div class="basic" v-bind:class="classarr">
{{name}}
</div>
</div>
<script>
const vm = new Vue({
el: '#root',
data: {
name: "class和style增強(qiáng)綁定",
classarr: ["text_1", "text_2", "text_3"],
},
methods: {
}
});
</script>css樣式:
.text_1 {
background-color: yellowgreen;
}
.text_2 {
font-size: 30px;
text-shadow: 2px 2px 10px red;
}
.text_3 {
border-radius: 20px;
}執(zhí)行結(jié)果:

(3)綁定class樣式,對(duì)象寫法
適用于:要綁定的樣式個(gè)數(shù)和名字也確定,需要?jiǎng)討B(tài)顯示
<div id="root">
<!-- 綁定class樣式,對(duì)象寫法,適用于:要綁定的樣式個(gè)數(shù)和名字也確定,需要?jiǎng)討B(tài)顯示 -->
<div class="basic" v-bind:class="classobj">
{{name}}
</div>
</div>
<script>
const vm = new Vue({
el: '#root',
data: {
name: "class和style增強(qiáng)綁定",
classobj: {
text_1: false,
text_2: true,
text_3: false,
},
},
methods: {
}
});
</script>css樣式:
.text_1 {
background-color: yellowgreen;
}
.text_2 {
font-size: 30px;
text-shadow: 2px 2px 10px red;
}
.text_3 {
border-radius: 20px;
}執(zhí)行結(jié)果:

二、v-bind綁定內(nèi)聯(lián)樣式style
通過內(nèi)聯(lián)(style)綁定給DOM元素示例:
(1)綁定style樣式---對(duì)象形式
<div id="root">
綁定style樣式----對(duì)象形式
<br><br>
<div v-bind:style="styleobj" class="basic">
{{name}}
</div><br><br>
</div>
<script>
const vm = new Vue({
el: '#root',
data: {
name: "class和style增強(qiáng)綁定",
styleobj: {
width: "300px",
height: "100px",
border: "1px solid black",
fontSize: "40px",
backgroundColor: "blue"
},
},
methods: {
}
});
</script>
執(zhí)行結(jié)果:

(2)綁定style樣式---數(shù)組寫法
<div id="root">
綁定style樣式----數(shù)組寫法
<br><br>
<div v-bind:style="stylearr" class="basic">
{{name}}
</div>
</div>
<script>
const vm = new Vue({
el: '#root',
data: {
name: "class和style增強(qiáng)綁定",
stylearr: [
{width: "300px"},
{height: "100px"},
{border: "1px solid black"},
{backgroundColor:"red"},
{fontSize:"20px"}
],
},
methods: {
}
});
</script>執(zhí)行結(jié)果:

到此這篇關(guān)于Vue.js中class與style的增強(qiáng)綁定的文章就介紹到這了,更多相關(guān)Vue.js class與style綁定內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3+elementPlus項(xiàng)目支持設(shè)置默認(rèn)附件方式
這篇文章主要介紹了vue3+elementPlus項(xiàng)目支持設(shè)置默認(rèn)附件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue全局注冊(cè)與局部注冊(cè)兩種組件注冊(cè)的方式
本文主要介紹了Vue全局注冊(cè)與局部注冊(cè)兩種組件注冊(cè)的方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
解決element-ui的table表格控件表頭與內(nèi)容列不對(duì)齊問題
這篇文章主要介紹了解決element-ui的table表格控件表頭與內(nèi)容列不對(duì)齊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
vue3中reactive數(shù)據(jù)被重新賦值后無法雙向綁定的解決
這篇文章主要介紹了vue3中reactive數(shù)據(jù)被重新賦值后無法雙向綁定的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
vue3+vite+移動(dòng)端webview打包后頁面加載空白問題解決辦法
這篇文章主要給大家介紹了關(guān)于vue3+vite+移動(dòng)端webview打包后頁面加載空白問題的解決辦法,文中通過代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-06-06
vue源碼學(xué)習(xí)之Object.defineProperty對(duì)象屬性監(jiān)聽
這篇文章主要介紹了vue源碼學(xué)習(xí)之Object.defineProperty對(duì)象屬性監(jiān)聽,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
vue 導(dǎo)航守衛(wèi)和axios攔截器有哪些區(qū)別
這篇文章主要介紹了vue 導(dǎo)航守衛(wèi)和axios攔截器有哪些區(qū)別,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-12-12

