怎么在vue中對class進行綁定?針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
閬中網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。<div id="app"> <div :class="{'active':isActive}"></div> </div> <script> var app = new Vue({ el:'#app', data:{ isActive:true } }) </script>
最終渲染結(jié)果:
<div class="active"></div>
<div id="app"> <div class="static" :class="{'active':isActive,'error':isError}"></div> </div> <script> var app = new Vue({ el:'#app', data:{ isActive:true, isError:false } }) </script>
最終渲染結(jié)果(當(dāng)數(shù)據(jù)isActive或isError變化時,對應(yīng)的class也會更新):
<div class="static active"></div>
3、當(dāng):class的表達式過長或邏輯復(fù)雜時,還可以綁定一個計算屬性,這是一種友好和常見的用法,一般當(dāng)條件多于兩個時,都可以使用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類型的數(shù)據(jù),或者使用類似計算屬性的methods.
<div id="app"> <div :class="[atvieCls,errorCls]"></div> </div> <script> var app = new Vue({ el:'#app', data:{ atvieCls:'active', errorCls:'error' } }) </script>
渲染后的結(jié)果為:
<div class="active error"></div>
<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>
渲染后的結(jié)果為:
<div class="active error"></div>
<div id="app"> <div :class="[{'active':isActive},errorCls]"></div> </div> <script> var app = new Vue({ el:'#app', data:{ isActive:true, errorCls:'error' } }) </script>
<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>
渲染后的結(jié)果為:
<div class="btn btn-large btn-disabled"></div>
以上,樣式btn會始終應(yīng)用,當(dāng)數(shù)據(jù)size不為空時,會應(yīng)用樣式前綴btn-,后加size的值;當(dāng)數(shù)據(jù)disabled為真時,會應(yīng)用樣式btn-disabled.
使用計算屬性給元素動態(tài)設(shè)置類名,在業(yè)務(wù)中經(jīng)常用到,尤其是在寫復(fù)用的組件時,所以在開發(fā)過程中,如果表達式較長或邏輯復(fù)雜,應(yīng)該盡可能優(yōu)先使用計算屬性。
如果直接在自定義組件上使用class或:class,樣式規(guī)則會直接應(yīng)用到這個組件的根元素上,例如聲明一個簡單的組件:
<script> Vue.component('my-component', { template: '<p class="article">一些文本</p>' }) </script>
然后在調(diào)用該組件時,使用對象語法或數(shù)組語法給組件綁定class,以對象語法為例:
<div id="app"> <my-component :class="'active':isActive"></my-component> </div> <script> var app = new Vue({ el: '#app', data: { isActive: true } }) </script>
最終組件渲染后的結(jié)果為:
<p class="article active">一些文本</p>
這種方法僅適用于自定義組件的最外層是一個根元素,否則會無效,當(dāng)不滿足這種條件或需要給具體的子元素設(shè)置類名時,應(yīng)當(dāng)使用組件的 props 來傳遞。
關(guān)于怎么在vue中對class進行綁定問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
名稱欄目:怎么在vue中對class進行綁定-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://jinyejixie.com/article12/decidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、域名注冊、外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容