简述

在使用组件的时候,不可避免的要去使用内联的 style 属性去设置标签样式,按照常规的使用, style 只能是一些属性列表组合成的字符串;这限制了在使用组件时可以自定义或者动态改变样式, 而 Vue 对标签的 style 属性进行了优化,从而使其可以支持对象/字符串/数组形式的赋值。

用对象的方法绑定class

示例代码如下:

<div class="test">
    <div class="otherClass" :class="{'class1':name1,'class2':name2}">我是内容</div>
</div>

<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            name1: true,
            name2: false,
        }
    })
</script>

 执行结果:
<div class="otherClass class1">我是内容</div>

另一种写法:

<div class="test">
    <div class="test" :class="classObj">我是内容</div>
</div>

<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            classObj: {
                name1: false,
                name2: true
            }
        }
    })
</script>

 执行结果:
<div class="otherClass name2">我是内容</div>

用数组的方法绑定class

示例代码如下:

<div class="test">
    <div class="otherClass" :class="[class1,class2]">我是内容</div>
</div>

<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            class1: 'name1',
            class2: 'name2',
        }
    })
</script>

 执行结果:
<div class="otherClass name1 name2">我是内容</div>

在数组中还可以用判断是否显示这个类名:

<div class="test">
    <div class="otherClass" :class="[class1,isShow? class2:'']">我是内容</div>
</div>

<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            class1: 'name1',
            class2: 'name2',
            isShow: false
        }
    })
</script>

 执行结果:
<div class="otherClass name1">我是内容</div>

用数组和对象混合的方法绑定class

示例代码如下:

<div class="test">
    <div class="otherClass" :class="[class1,{class2: isShow}]">我是内容</div>
</div>

<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            class1: 'name1',
            class2: 'name2',
            isShow: true
        }
    })
</script>

 执行结果:
<div class="otherClass name1 class2">我是内容</div>

用对象的方式实现style绑定

示例代码如下:

<div class="test">
    <div class="otherClass" :style="{color: yanse,width: kuan + 'px' }">我是内容</div>
</div>

<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            yanse: 'red',
            kuan: 100,
        }
    })
</script>

 执行结果:
<div class="otherClass" style="coloe: red; width: 100px;">我是内容</div>

另一种写法:

<div class="test">
            <div class="otherClass" :style="styleObj">我是内容</div>
</div>
<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            styleObj: {
                color: 'pink',
                width: '200px',
            }
        }
    })
</script>

 执行结果:
<div class="otherClass" style="coloe: pink; width: 200px;">我是内容</div>

用数组和对象混合的方式实现style绑定

示例代码如下:

<div class="test">
    <div class="otherClass" :style="[styleObjectA,styleObjectB]">我是内容</div>
</div>

<script type="text/javascript">
    var myVue = new Vue({
        el:".test",
        data: {
            styleObjectA: {
                color: 'red',
                width: '100px',
            },
            styleObjectB: {
                top: '20px'
            }
        }
    })
</script>

 执行结果:
<div class="otherClass" style="width: 200px; coloe: red; top: 20px;">我是内容</div>

这个知识点还是比较好学的,相对简单好理解

© 2016, Content By BEGINNER