vue中?根據判斷條件添加一個或多個style及class的寫法小結
vue中 根據判斷條件添加一個或多個style及class的寫法
style 寫法:
<i:style="{'color':isBling?'red':'white'}" @click=""></i>
class寫法
<i :class='[show ?"class1":"class2","iconfont"]' @click="toggleVisual"></i>?
class1與class2是獨有樣式。iconfont是共有樣式
擴展:關于vue 里:class 的幾種使用方式
關于:class的使用 結合自己的實現 整理如下。接下來一篇寫:style 。其實從:class 這里可以想到:style的使用 也是類似的
一、class
1 自定義class 通過vue computed 計算屬性 實現 我的class 是名稱+時間戳,是獨一份的,可以作為id角色使用。
html: <div :class="_module"></div>
js: data(){ return { arr:{ m_class:"", hasClass:false } } }, computed:{ _module:{ get: function () { if(this.arr.hasClass){ return this.arr.m_class }else{ return this.arr.m_class="module_"+(new Date().getTime()) } } } }
2,以三元表達式來表示class
如果存在titleSrc 就添加bgImgSet,如果不存在就沒有這個class
html: <div :class="ind.titleSrc?'bgImgSet':''"></div>
data(){ return { ind:{ titleSrc:"" } } }
3,如果存在兩個動態(tài)class 可以如下這樣寫 注意標簽上不能寫兩個:class
< div class="allCommon " @contextmenu.prevent="clickSet(_module)" :class="[_module,{'takePlace':!arr.con.htmlData}]"> ...... </ div >
用[ ]數組的形式:
這里面_module 是我用1方法生成的,需要給我項目每個模塊的div添加上的class;takePlace 是占位的class 只有特定的模塊能添加,關于兩個動態(tài)class如何添加,最后想出 以數組的方式 可以實現。 代碼如上所示。
4,涉及到了樣式的動態(tài)變化,所有就想到了v-bind:class這個指令,但是按照原本的方式:
<div :class="func(state)"> //html methods: { func(state){ if(state===0){ return "class1"; } else{ return "class2" } } }
到此這篇關于vue中 根據判斷條件添加一個或多個style,及class的寫法的文章就介紹到這了,更多相關vue根據判斷條件添加一個或多個style內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!