1. 程式人生 > >Vue學習之路第十一篇:為頁面元素設置class類樣式

Vue學習之路第十一篇:為頁面元素設置class類樣式

成了 簡化 htm viewport con ava 屬性綁定 進行 頁面元素

1、class為頁面元素的一個屬性,通過前面第五篇的內容可知,操作屬性需要使用到v-bind指定(也可簡寫為 :)。

2、先來看一個簡單的頁面樣式內容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge"
> <title>vue樣式</title> <script type="text/javascript" src="js/vue.min.js"></script> <style type="text/css"> .red{ color: red; } .thin{ font-weight: bold; } .size{ font-size: 30px; }
</style> </head> <body> <div id="app"> <p class="red size">這是Vue樣式示例</p> </div> <script type="text/javascript"> var vm = new Vue({ el:"#app", data:{}, methods:{} }) </script
> </body> </html>

裏面簡單的定義了三個樣式類:red、thin、size;接下來我們通過v-bind實現同樣的效果。

<p v-bind:class="redStr">這是Vue樣式示例</p>

p標簽裏我們添加v-bind指令,class裏的樣式內容為Vue對象裏data屬性定義的“redStr”值。

    <script type="text/javascript">
        var vm = new Vue({
            el:"#app",
            data:{
                redStr:‘red size‘
            },
            methods:{}
        })
    </script>

data裏redStr的值為“red size”,所以運行效果是一樣的。

3、看下個例子:

<body>
    <div id="app">
        <p v-bind:class="[‘red‘,flag?‘size‘:‘‘]">這是Vue樣式示例</p>
    </div>

    <script type="text/javascript">
        var vm = new Vue({
            el:"#app",
            data:{
         flag:true 
       }, methods:{} })
</script> </body>

這裏我感覺雖然用了v-bind指令,但是其沒有從data裏取數據,其直接把樣式定義成了一個固定字符串數組,通過數組內容取對應的樣式。其有一個特點就是可以讀取三元表達式,根據三元表達式來控制樣式是否進行展示。而且我們還可以對這個三元表達式進行簡化,用對象的方式來達到同樣的效果。代碼如下:

<p v-bind:class="[‘red‘,{‘size‘:flag}]">這是Vue樣式示例</p>

4、下個例子:

<body>
    <div id="app">
        <p v-bind:class="classObj">這是Vue樣式示例</p>
    </div>

    <script type="text/javascript">
        var vm = new Vue({
            el:"#app",
            data:{
                classObj:{‘size‘:true,‘red‘:true,‘thin‘:true}
            },
            methods:{}
        })
    </script>
</body>

這裏通過屬性綁定了data對象數據classObj,其值為一個對象,通過true或者false來決定是否應用該樣式,這樣的代碼比較簡潔而且靈活度比較高。

5、以上幾種方式都可以用來定義class樣式,具體使用哪一種可以根據具體需求場景來應用。

每天進步一點點!

Vue學習之路第十一篇:為頁面元素設置class類樣式