av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

vue綁定class的三種方法

瀏覽:3日期:2022-10-16 16:39:06
一、對象語法1、給v-bind:class 設置一個對象,可以動態地切換class,例如:

<div id='app'> <div :class='{’active’:isActive}'></div></div><script>var app = new Vue({ el:’#app’, data:{ isActive:true }})</script>

最終渲染結果:

<div class='active'></div>2、對象中也可以傳入多個屬性,來動態切換class。另外,:class可以與普通class共存,例如:

<div id='app'> <div :class='{’active’:isActive,’error’:isError}'></div></div><script>var app = new Vue({ el:’#app’, data:{ isActive:true, isError:false }})</script>

最終渲染結果(當數據isActive或isError變化時,對應的class也會更新):

<div class='static active'></div>

3、當:class的表達式過長或邏輯復雜時,還可以綁定一個計算屬性,這是一種友好和常見的用法,一般當條件多于兩個時,都可以使用data或者computed,例如:

<div id='app'> <div :class='classes'></div></div><script>var app = new Vue({ el:’#app’, data:{ isActive:true, isError:null }, computed:{ classes(){ return {active:this.isActive && !this.error,’text-fail’:this.error && this.error.type ===’fail’ } } }})</script>

除了計算屬性,也可以直接綁定一個Object類型的數據,或者使用類似計算屬性的methods.

二、數組語法1、當需要應用多個class時,可以使用數組語法,給:class綁定一個數組,應用一個class列表:

<div id='app'> <div :class='[atvieCls,errorCls]'></div></div><script>var app = new Vue({ el:’#app’, data:{ atvieCls:’active’, errorCls:’error’ }})</script>

渲染后的結果為:

<div class='active error'></div>2、使用三元表達式,根據條件切換class(當數據isActive為真時,樣式active才會被應用):

<div id='app'> <div :class='[isActive ? activeCls : ’’,errorCls]'></div></div><script>var app = new Vue({ el:’#app’, data:{ isActive:true, atvieCls:’active’, errorCls:’error’ }})</script>

渲染后的結果為:

<div class='active error'></div>3、class有多個條件時,這樣寫較為煩瑣,可以在數組語法中使用對象語法:

<div id='app'> <div :class='[{’active’:isActive},errorCls]'></div></div><script>var app = new Vue({ el:’#app’, data:{ isActive:true, errorCls:’error’ }})</script>4、與對象語法一樣,也可以使用data、computed、method三種方法,以計算屬性為例:

<div id='app'> <button :class='classes'></button></div><script> var app = new Vue({ el: ’#app’, data: { size: ’large’, disabled: true }, computed: { classes: function () {return [ ’btn’, { [’btn-’+this.size]: this.size!==’’, [’btn-disabled’]: this.disabled, }] } } })</script>

渲染后的結果為:

<div class='btn btn-large btn-disabled'></div>

以上,樣式btn會始終應用,當數據size不為空時,會應用樣式前綴btn-,后加size的值;當數據disabled為真時,會應用樣式btn-disabled.

使用計算屬性給元素動態設置類名,在業務中經常用到,尤其是在寫復用的組件時,所以在開發過程中,如果表達式較長或邏輯復雜,應該盡可能優先使用計算屬性。

三、在組件上使用

如果直接在自定義組件上使用class或:class,樣式規則會直接應用到這個組件的根元素上,例如聲明一個簡單的組件:

<script> Vue.component(’my-component’, { template: ’<p class='article'>一些文本</p>’ })</script>

然后在調用該組件時,使用對象語法或數組語法給組件綁定class,以對象語法為例:

<div id='app'> <my-component :class='’active’:isActive'></my-component></div><script> var app = new Vue({ el: ’#app’, data: { isActive: true } })</script>

最終組件渲染后的結果為:

<p class='article active'>一些文本</p>

這種方法僅適用于自定義組件的最外層是一個根元素,否則會無效,當不滿足這種條件或需要給具體的子元素設置類名時,應當使用組件的 props 來傳遞。

以上就是vue綁定class的三種方法的詳細內容,更多關于vue綁定class的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 久久久久久久久国产 | 蜜桃色999| 青青草av | 成人羞羞国产免费动态 | 免费三级网站 | 成人免费毛片aaaaaa片 | 国产午夜精品久久久 | 国语对白做受欧美 | 日本免费黄色网址 | 亚洲免费成人 | 欧美精品福利 | 人人射人人干 | 国产精品日韩精品 | 欧美日韩国产中文 | 久久国产精 | 久久一二三区 | 欧美91 | 中文字幕+乱码+中文乱码91 | 日韩在线不卡 | 97cao| 一级片免费在线观看 | 国产精品海角社区 | 久久久夜| 日韩精品一级毛片在线播放 | 国产精品99久久久久久www | 欧美一级网站 | 国产黄色大片 | 日韩城人免费 | 国产三级午夜理伦三级 | 视频一二三区 | 久久久久亚洲精品 | 亚洲成人黄色 | 六月色婷婷 | 少妇网址| 天堂久久久久 | 免费日韩视频 | 黄色一级片免费看 | 小镇姑娘国语版在线观看免费 | 韩日av| 成人在线一区二区 | 国产一级网站 |