iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

在網頁中,常常會使用到需要不同設計的class讓畫面有明顯的動態效果
在Vue中也可以在data的配置中一組數據收集css的樣式
再綁定在class上

CLASS樣式綁定

在編嵌上的使用會以
:class="xxx"
的方式呈現

以下套用bootstrape的樣式做說明

<div id="root">
    <button :class="color">按鈕</button>
</div>

<script>
    var vm = new Vue({
        el : "#root",
        data : {
            color : "btn btn-info m-2",
        }
    })
</script>

在data中的數據配置上多個樣式
再結合事件綁定
可以達成類似變換顏色的效果

類名不確定, 需要動態指定

<div id="root">
    <button :class="color" @click="change" >按鈕</button>
</div>
<script>
    var vm = new Vue({
        el : "#root",
        data : {
            good : "btn btn-info m-2",
            warn : "btn btn-danger m-2",
            color : "btn btn-info m-2"
        },
        methods : {
            change(){
                if (this.color == this.good) {
                    this.color = this.warn
                } else {
                    this.color = this.good
                }
            }
        }
    })
</script>

也可以配置陣列讓css的樣式有彈性做添加或是刪減
綁定個數不確定

<body>
<div id="root">
    <button :class="color" @click="change" >按鈕</button>
</div>

<script>
    var vm = new Vue({
        el : "#root",
        data : {
            colorArr : ["btn btn-info m-2","btn btn-danger m-2","btn btn-dark m-2"],
            color : "btn btn-info m-2"
        },
        methods : {
            change(){
                // 顏色隨機
                let i = Math.floor(Math.random()*3);
                this.color = this.colorArr[i];
            }
        }
    })
</script>

除此之外
也能將color配置一個對象
個數、名稱確定, 但要動態決定要不要用

<div id="root">
    <button :class="style" >按鈕</button>
</div>
<script>
    var vm = new Vue({
        el : "#root",
        data : {
            style : {
                "btn" : true,
                "btn-info" : true,
                "btn-lg" : true,
                "m-2" : true 
            }
        }
    })
</script>

針對class的配置上可以依照需求判斷使用哪種方式運用


STYLE樣式綁定

在某些時刻,針對css沒有配置到的class
對像我這樣的後端工程師要刻畫面的時候就有可能使用到style來調整畫面的間距、寬度等等

那在針對style要使用到data的配置時
:style="xxx"
可以綁定data中的數據

<div id="root">
    <p :style="classObj" >style樣式</p>
</div>
<script>
    var vm = new Vue({
        el : "#root",
        data : {
            classObj : {
                fontSize : "30px",
                color : "red",
            }
        }
    })
</script>

對於style而言,配置為對象式可以有效閱讀前端樣式
一般在撰寫html的時候,style的使用常常會讓程式碼太長
上面的做法可以有效閱讀,還可以有復用的優勢


配置為陣列也能達到效果

<div id="root">
    <p :style="classArr" >style樣式</p>
</div>
<script>
    var vm = new Vue({
        el : "#root",
        data : {
            classArr : [{fontSize : "30px",},{color : "red",}]
        }
    })
</script>

總結

  • class 樣式 :
    寫法 :class=”xxx” , xxx可以為字符串, 對象, 數組
  1. 字符串 : 類名不確定, 要動態獲取
  2. 要綁定多個樣式 個數不確定 名子也不確定
  3. 要綁定多個樣式 個數、名子確定 不確定使用與否
  • style 樣式 :
  1. EX : :style = { fontSize : xxx }, xxx為動態值
  2. EX : :style = [ a, b ], 其中 a, b可以為樣式對象

以上就是今天的內容
下一章節會提及條件渲染
是有關用指令做判段的寫法


上一篇
2023鐵人賽_Vue2基本使用規則(Day7)-監視屬性
下一篇
2023鐵人賽_Vue2基本使用規則(Day9)-條件渲染
系列文
Vue2 初步認識以及基本使用規則 && 了解 Vue2 的基本原理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言