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插槽slot詳細(xì)介紹(對(duì)比版本變化,避免踩坑)
Vue中的Slot對(duì)于編寫(xiě)可復(fù)用可擴(kuò)展的組件是再合適不過(guò)了,下面這篇文章主要給大家介紹了關(guān)于Vue插槽slot詳細(xì)介紹的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06vue單頁(yè)應(yīng)用在頁(yè)面刷新時(shí)保留狀態(tài)數(shù)據(jù)的方法
今天小編就為大家分享一篇vue單頁(yè)應(yīng)用在頁(yè)面刷新時(shí)保留狀態(tài)數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09Vuex的插件vuex-persistedstate數(shù)據(jù)持久化存儲(chǔ)操作
這篇文章主要介紹了Vuex的插件vuex-persistedstate數(shù)據(jù)持久化存儲(chǔ)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12Vue中Pinia的各種詳細(xì)說(shuō)明和使用示例
Pinia是Vue 3的專(zhuān)屬狀態(tài)管理庫(kù),旨在替代Vuex,提供更簡(jiǎn)單、直觀的狀態(tài)管理解決方案,它支持組合式API和選項(xiàng)式API,允許跨組件或頁(yè)面共享狀態(tài),避免了Vuex中的許多復(fù)雜概念,本文介紹Vue中Pinia的各種詳細(xì)說(shuō)明和使用示例,感興趣的朋友一起看看吧2025-01-01VueQuillEditor富文本上傳圖片(非base64)
這篇文章主要介紹了VueQuillEditor富文本上傳圖片(非base64),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06關(guān)于在vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)的代碼示例
Vue是一款流行的前端框架,支持過(guò)渡動(dòng)畫(huà)的實(shí)現(xiàn)是其中的一項(xiàng)重要特性,在Vue中,使用過(guò)渡動(dòng)畫(huà)可以為用戶提供更加友好的用戶體驗(yàn),下面我將為大家介紹一下子如何在Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà),需要的朋友可以參考下2023-06-06vue項(xiàng)目中訪問(wèn)本地json數(shù)據(jù)
這篇文章主要介紹了vue項(xiàng)目中訪問(wèn)本地json數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07ant desing vue table 實(shí)現(xiàn)可伸縮列的完整例子
最近在使用ant-design-vue做表格時(shí),遇到要做一個(gè)可伸縮列表格的需求,在網(wǎng)上一直沒(méi)有找到好的方法,于是小編動(dòng)手自己寫(xiě)個(gè)可以此功能,下面小編把a(bǔ)nt desing vue table 可伸縮列的實(shí)現(xiàn)代碼分享到腳本之家平臺(tái)供大家參考2021-05-05