VUE動(dòng)態(tài)綁定class類的三種常用方式及適用場景詳解
前言
在實(shí)際開發(fā)中,我們會(huì)經(jīng)常遇到動(dòng)態(tài)綁定class的情況,常見的情況可能有:
- 根據(jù)不同的返回值渲染不同的class樣式(也就是兩個(gè)及兩個(gè)以上的動(dòng)態(tài)class選擇使用);
- UI在設(shè)計(jì)時(shí)對(duì)于某個(gè)模塊的樣式?jīng)]有確定下來的時(shí)候我們?nèi)戇@個(gè)模塊(給了基礎(chǔ)樣式);
- UI在設(shè)計(jì)對(duì)于某個(gè)模塊的樣式有很多樣子,但不確定用是否全部使用時(shí)(給了基礎(chǔ)樣式)。
針對(duì)這三種常見的情況我們在寫頁面樣式時(shí)可已選擇這三種常見的動(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類</button>
<button class="btn" @click="chooseClass3">選擇添加cs_class3類</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類</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插槽slot詳細(xì)介紹(對(duì)比版本變化,避免踩坑)
Vue中的Slot對(duì)于編寫可復(fù)用可擴(kuò)展的組件是再合適不過了,下面這篇文章主要給大家介紹了關(guān)于Vue插槽slot詳細(xì)介紹的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
vue單頁應(yīng)用在頁面刷新時(shí)保留狀態(tài)數(shù)據(jù)的方法
今天小編就為大家分享一篇vue單頁應(yīng)用在頁面刷新時(shí)保留狀態(tài)數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Vuex的插件vuex-persistedstate數(shù)據(jù)持久化存儲(chǔ)操作
這篇文章主要介紹了Vuex的插件vuex-persistedstate數(shù)據(jù)持久化存儲(chǔ)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
VueQuillEditor富文本上傳圖片(非base64)
這篇文章主要介紹了VueQuillEditor富文本上傳圖片(非base64),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
關(guān)于在vue中實(shí)現(xiàn)過渡動(dòng)畫的代碼示例
Vue是一款流行的前端框架,支持過渡動(dòng)畫的實(shí)現(xiàn)是其中的一項(xiàng)重要特性,在Vue中,使用過渡動(dòng)畫可以為用戶提供更加友好的用戶體驗(yàn),下面我將為大家介紹一下子如何在Vue中實(shí)現(xiàn)過渡動(dòng)畫,需要的朋友可以參考下2023-06-06
vue項(xiàng)目中訪問本地json數(shù)據(jù)
這篇文章主要介紹了vue項(xiàng)目中訪問本地json數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
ant desing vue table 實(shí)現(xiàn)可伸縮列的完整例子
最近在使用ant-design-vue做表格時(shí),遇到要做一個(gè)可伸縮列表格的需求,在網(wǎng)上一直沒有找到好的方法,于是小編動(dòng)手自己寫個(gè)可以此功能,下面小編把a(bǔ)nt desing vue table 可伸縮列的實(shí)現(xiàn)代碼分享到腳本之家平臺(tái)供大家參考2021-05-05

