Vue Class與Style繫結 五

2021-10-08 19:10:17 字數 2425 閱讀 9388

操作元素的class列表和內聯樣式是資料繫結的乙個常見需求,因為他們都是attribute,所以我們可以用v-bind來處理他們

物件語法
通過v-bind:class,借助data或計算屬性,來動態改變某個class是否存在

lang

="en"

>

>

charset

="utf-8"

/>

name

="viewport"

content

="width=device-width, initial-scale=1.0"

/>

>

documenttitle

>

src=

"">

script

>

>

.active,

.active2,

.active3

style

>

head

>

>

>

v-bind:class

="classobject"

>

我是divdiv

>

div>

>

let vm =

newvue

(// }

// data:

// }

data:

function()

},computed:}}

})script

>

body

>

html

>

陣列語法
把乙個陣列傳給v-bind:class,以應用乙個class列表,進而借助這個class列表來動態修改class。

>

v-bind:class

="[classone,classtwo]"

>

我是divdiv

>

div>

>

let vm =

newvue(}

})script

>

如果你也想根據條件切換列表中的 class,可以用三元表示式:

這樣寫將始終新增errorclass,但是只有在isactive是 truthy時才新增activeclass

不過,當有多個條件 class 時這樣寫有些繁瑣。所以在陣列語法中也可以使用物件語法:

v-bind:class

="[, errorclass]"

>

div>

用在元件上
自定義元件的初始模板上的class不會被覆蓋,後續新增的class會增加

物件語法
類似於class的物件語法

直接繫結到乙個樣式物件通常更好,這會讓模板更清晰:

v-bind:

style

="styleobject

">

div>

data:

}

同樣的,物件語法常常結合返回物件的計算屬性使用。

陣列語法

v-bind:style的陣列語法可以將多個樣式物件應用到同乙個元素上:

v-bind:

style

="[basestyles, overridingstyles]

">

div>

自動新增字首
v-bind:style使用需要新增瀏覽器引擎字首的 css property 時,如transform,vue.js 會自動偵測並新增相應的字首。

多重值

從 2.3.0 起你可以為style繫結中的 property 提供乙個包含多個值的陣列,常用於提供多個帶字首的值,例如:

:style=""

>

div>

這樣寫只會渲染陣列中最後乙個被瀏覽器支援的值。在本例中,如果瀏覽器支援不帶瀏覽器字首的 flexbox,那麼就只會渲染display: flex

vue class繫結與style繫結

物件語法 物件中有乙個屬性 我們可以傳給 v bind class 乙個物件,以動態地切換 class 上面的語法表示 classactive 的更新將取決於資料屬性 isactive 是否為真值 物件中有多個屬性 我們也可以在物件中傳入更多屬性用來動態切換多個 class 此外,v bind cl...

vue class繫結與style繫結

物件語法 物件中有乙個屬性 我們可以傳給 v bind class 乙個物件,以動態地切換 class 上面的語法表示 classactive 的更新將取決於資料屬性 isactive 是否為真值 物件中有多個屬性 我們也可以在物件中傳入更多屬性用來動態切換多個 class 此外,v bind cl...

vue Class與Style的資料繫結

1.傳給 v bind class 乙個物件,以動態地切換 class data 渲染結果 2.把乙個陣列傳給 v bind class,以應用乙個 class 列表 data 渲染為 3.陣列中直接在結構中判斷 三元判斷 data 結果 4.在陣列語法中也可以使用物件語法 一般用在多個條件 cla...