Vue 提供了 class
和 style
兩種 directives 的方法來連結綁定 class 和樣式。
將一個 object 傳遞給 :class
(v-bind:class
的語法糖) 來動態切換 classes
active
為 class 名稱,isActive
是程式中的 truthy 或 boolean
當 isActive
為 true,就會產生
可以使用多組動態 classes 並且和普通的 class 共存
上述的 html 和 js 就會產生
active
和 text-danger
會因為 isActive
和 hasError
的真值而產生變化
且可以將 object 取出來,不必是 inline 樣式
這樣結果就會是
還可以將 object 綁定到 computed
property
如此同樣會產生
除了可以是 object,也可以將一組 classes 名稱的 array 傳遞給 :class
如此會產生
如果要條件判別,可以使用三元表示法(ternary expression)
這樣子就會條件判斷是否有 activeClass
,但是 errorClass
則是一定會有
另外還能再 array 中使用 object (避免太過冗長)
可以在 custom component 上使用 class
(限定 single root element),如果原本在 component 就有設定 class 則會一起保留
例如:
會 render 出
同樣可以使用 binding
如果 isActive
為 true,就會生成
如果 component 有多個 root elements 則需要指定哪些需要 class
透過 :style
可以直接指派 inline styles 給元件
:style
用起來像是純粹的 css,只是給予的值是 JavaScript object。給予的 css property names 必須是 camelCase
或是 kebab-case
(就像 kebab-case
使用 -
區隔)
直接綁定一個物件會是一個好主意
object syntax 也很常和 computed property 搭配使用
:style
和 array syntax 組合可以指派多個 objects 給同一個元件
Vue 會自動加入 prefixes 給支援的 css properties (vendor prefixes)
可以指派 array 給同一個 css style property
瀏覽器會選用在支援的值中選擇最後一個來使用