您好,登錄后才能下訂單哦!
今天小編給大家分享一下Vue.js中class與style的增強綁定如何實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在web前端應用中,操作元素的class列表的內聯樣式style是數據綁定style是數據綁定的一個常見需求,因為它們都是attribute,所有可以用v-bind處理它們,但若樣式復雜,則需要書寫長串的樣式代碼,這樣一來,字符串拼接就比較麻煩。因此,在將v-bind用于class和style時,Vue.js做了專門的增強,表達式結果的類型除了字符串之外,還可以是對象或數組。
若想使用類樣式(即以類名定義元素的樣式,類樣式一般以"."號開頭命令),可以通過v-bind指令綁定class屬性實現:
適用于:樣式的類名不確定,需要動態指定
<div id="root"> <!-- 綁定class樣式,字符串寫法,適用于:樣式的類名不確定,需要動態指定 --> <div class="basic" v-bind:class="moon" @click="doChange"> {{name}} </div> </div> <script> const vm = new Vue({ el: '#root', data: { name: "class和style增強綁定", moon: "normal" }, methods: { doChange() { var arr = ["happy", "sad", "normal"]; indexof = Math.floor(Math.random() * 3); this.moon = arr[indexof]; } } }); </script>
css樣式:
.happy { border: 4px solid red; background-color: rgba(255, 255, 0, 0.644); background: linear-gradient(30deg, yellow, pink, orange); } .sad { border: 4px dashed rgb(2, 197, 2); background-color: gray; } .normal { background-color: skyblue; }
執行結果:
適用于:要綁定的樣式個數不確定,名字也不確定
<div id="root"> <!-- 綁定class樣式,數組寫法,適用于:要綁定的樣式個數不確定,名字也不確定 --> <div class="basic" v-bind:class="classarr"> {{name}} </div> </div> <script> const vm = new Vue({ el: '#root', data: { name: "class和style增強綁定", classarr: ["text_1", "text_2", "text_3"], }, methods: { } }); </script>
css樣式:
.text_1 { background-color: yellowgreen; } .text_2 { font-size: 30px; text-shadow: 2px 2px 10px red; } .text_3 { border-radius: 20px; }
執行結果:
適用于:要綁定的樣式個數和名字也確定,需要動態顯示
<div id="root"> <!-- 綁定class樣式,對象寫法,適用于:要綁定的樣式個數和名字也確定,需要動態顯示 --> <div class="basic" v-bind:class="classobj"> {{name}} </div> </div> <script> const vm = new Vue({ el: '#root', data: { name: "class和style增強綁定", classobj: { text_1: false, text_2: true, text_3: false, }, }, methods: { } }); </script>
css樣式:
.text_1 { background-color: yellowgreen; } .text_2 { font-size: 30px; text-shadow: 2px 2px 10px red; } .text_3 { border-radius: 20px; }
執行結果:
通過內聯(style)綁定給DOM元素示例:
<div id="root"> 綁定style樣式----對象形式 <br><br> <div v-bind: class="basic"> {{name}} </div><br><br> </div> <script> const vm = new Vue({ el: '#root', data: { name: "class和style增強綁定", styleobj: { width: "300px", height: "100px", border: "1px solid black", fontSize: "40px", backgroundColor: "blue" }, }, methods: { } }); </script>
執行結果:
<div id="root"> 綁定style樣式----數組寫法 <br><br> <div v-bind: class="basic"> {{name}} </div> </div> <script> const vm = new Vue({ el: '#root', data: { name: "class和style增強綁定", stylearr: [ {width: "300px"}, {height: "100px"}, {border: "1px solid black"}, {backgroundColor:"red"}, {fontSize:"20px"} ], }, methods: { } }); </script>
執行結果:
以上就是“Vue.js中class與style的增強綁定如何實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。