VUE動(dòng)態(tài)綁定class類(lèi)的三種常用方式及適用場(chǎng)景詳解
前言
在實(shí)際開(kāi)發(fā)中,我們會(huì)經(jīng)常遇到動(dòng)態(tài)綁定class的情況,常見(jiàn)的情況可能有:
- 根據(jù)不同的返回值渲染不同的class樣式(也就是兩個(gè)及兩個(gè)以上的動(dòng)態(tài)class選擇使用);
- UI在設(shè)計(jì)時(shí)對(duì)于某個(gè)模塊的樣式?jīng)]有確定下來(lái)的時(shí)候我們?nèi)?xiě)這個(gè)模塊(給了基礎(chǔ)樣式);
- UI在設(shè)計(jì)對(duì)于某個(gè)模塊的樣式有很多樣子,但不確定用是否全部使用時(shí)(給了基礎(chǔ)樣式)。
針對(duì)這三種常見(jiàn)的情況我們?cè)趯?xiě)頁(yè)面樣式時(shí)可已選擇這三種常見(jiàn)的動(dòng)態(tài)加載calss的方法。
1.動(dòng)態(tài)選擇class樣式(對(duì)象添加:情景一)
<template>
<div>
<div class="basic" :class="classObj">選擇添加樣式</div>
<div style="display: flex; flex-direction: column;">
<button style="width: 200px;" @click="chooseClass">選擇添加cs_class1類(lèi)</button>
<button class="btn" @click="chooseClass3">選擇添加cs_class3類(lèi)</button>
</div>
</div>
</template>
<script>
export default{
data() {
return {
classObj:{
cs_class1:false,
cs_class3:false,
},
}
},
methods:{
chooseClass(){
this.classObj.cs_class1=true
this.classObj.cs_class3=false
},
chooseClass3(){
this.classObj.cs_class1=false
this.classObj.cs_class3=true
}
}
}
</script>
<style>
.basic{
display: flex;
align-items: center;
justify-content: center;
background: pink;
width: 200px;
height: 100px;
}
.btn{
width: 200px;
margin-bottom: 20px;
}
.box_rudis{
border-radius: 30px;
}
.cs_class1{
color: red;
}
.cs_class2{
border:2px solid #0000FF
}
.cs_class3{
background: yellow;
}
</style>2.動(dòng)態(tài)添加一個(gè)class樣式(字符串添加:情景二)
<template>
<div>
<div class="basic" :class="boxrudius">添加一個(gè)動(dòng)態(tài)樣式</div>
</div>
</template>
<script>
export default{
data() {
return {
boxrudius:'box_rudis',
}
},
}
</script>
<style>
.basic{
display: flex;
align-items: center;
justify-content: center;
background: pink;
width: 200px;
height: 100px;
}
.box_rudis{
border-radius: 30px;
}
</style>3.動(dòng)態(tài)添加多個(gè)class樣式(數(shù)組添加:情景三)
<template>
<div>
<div class="basic" :class="classArr">添加多個(gè)動(dòng)態(tài)樣式</div>
<button class="btn" @click="addClassArr">動(dòng)態(tài)添加多個(gè)class類(lèi)</button>
</div>
</template>
<script>
export default{
data() {
return {
classArr:[],
}
},
methods:{
addClassArr(){
this.classArr=['cs_class1','cs_class2','cs_class3']
},
}
}
</script>
<style>
.basic{
display: flex;
align-items: center;
justify-content: center;
background: pink;
width: 200px;
height: 100px;
}
.btn{
width: 200px;
margin-bottom: 20px;
}
.box_rudis{
border-radius: 30px;
}
.cs_class1{
color: red;
}
.cs_class2{
border:2px solid #0000FF
}
.cs_class3{
background: yellow;
}
</style>總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue子級(jí)如何向父級(jí)傳遞數(shù)據(jù)(自定義事件)
這篇文章主要介紹了Vue子級(jí)如何向父級(jí)傳遞數(shù)據(jù)(自定義事件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
vue中radio單選框如何實(shí)現(xiàn)取消選中狀態(tài)問(wèn)題
這篇文章主要介紹了vue中radio單選框如何實(shí)現(xiàn)取消選中狀態(tài)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
使用Vue實(shí)現(xiàn)簡(jiǎn)單的信號(hào)和電池電量組件
這篇文章主要為大家詳細(xì)介紹了如何使用Vue實(shí)現(xiàn)簡(jiǎn)單的信號(hào)和電池電量組件效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04
vue2.0學(xué)習(xí)之a(chǎn)xios的封裝與vuex介紹
最近在研究Vuex2.0,搞了好幾天終于有點(diǎn)頭緒了。下面這篇文章主要給大家介紹了關(guān)于vue2.0學(xué)習(xí)之a(chǎn)xios的封裝與vuex的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05

