Class 與 Style 繫結
繫結 HTML Class
1.物件語法
<div id="app">
<div class="static" v-bind:class="{ active: isActive, `text`: hasError }">
</div>
</div>
<script>
var vm = new Vue({
el: `#app`,
data: {
isActive: true,
hasError: true
}
繫結的資料物件可以不用內聯定義在模板裡,可以如下定義:
<div id="app">
<div class="static" v-bind:class="classObject">
</div>
</div>
<script>
var vm = new Vue({
el: `#app`,
data: {
classObject:{
active: true,
`text-danger`: true
}
}
})
</script>
2.陣列語法
我們可以把一個陣列傳給 v-bind:class
,以應用一個 class 列表:
<div id="app">
<div v-bind:class="[activeClass, errorClass]"></div>
</div>
<script>
var vm = new Vue({
el: `#app`,
data: {
activeClass: `active`,
errorClass: `text-danger`
}
})
</script>
3.用在元件上
<div id="app">
<my-component class="baz boo"></my-component>
</div>
<script>
Vue.component(`my-component`, {
template: `<p class="foo bar">Hi</p>`
})
var vm = new Vue({
el: `#app`,
})
</script>
繫結內聯樣式
1.物件語法v-bind:style
的物件語法十分直觀——看著非常像 CSS,但其實是一個 JavaScript 物件。
<div id="app">
<div v-bind:style="{ color: activeColor, fontSize: fontSize + `px` }">hi</div>
</div>
<script>
var vm = new Vue({
el: `#app`,
data: {
activeColor: `red`,
fontSize: 30
}
})
</script>
直接繫結到一個樣式物件通常更好,這會讓模板更清晰:
<div id="app">
<div v-bind:style="styleObject">hello</div>
</div>
<script>
var vm = new Vue({
el: `#app`,
data: {
styleObject: {
color: `red`,
fontSize: `13px`
}
}
})
</script>
2.陣列語法v-bind:style
的陣列語法可以將多個樣式物件應用到同一個元素上:
<div v-bind:style="[baseStyles, overridingStyles]"></div>
3.自動新增字首
當 v-bind:style
使用需要新增瀏覽器引擎字首的 CSS 屬性時,如 transform
,Vue.js 會自動偵測並新增相應的字首。