vue class绑定对象和数组简化

1.HTML

    <div v-bind:class='arrClasses'>class绑定值得简化操作-数组</div>
    <div v-bind:class='objClasses'>class绑定值得简化操作-对象</div>

2.style

  <style>
        .active {
            border: 1px solid red;
            width: 100px;
            height: 100px;
        }

        .error {
            background-color: orange;
        }

        .test {
            color: blue;
        }

        .base {
            font-size: 28px;
        }
    </style>

3.script

        var vm = new Vue({
            // el:告诉vue把数据插入到哪个位置
            el: "#app",
            // data: 提供数据
            data: {
                activeClass: 'active',
                errorClass: 'error',
                isTest: 'true',
                arrClasses: ['active','error'],
                objClasses: {
                    active: true,
                    error: true
                }
            },

4.示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>样式绑定语法细节</title>
    <style>
        .active {
            border: 1px solid red;
            width: 100px;
            height: 100px;
        }

        .error {
            background-color: orange;
        }

        .test {
            color: blue;
        }

        .base {
            font-size: 28px;
        }


    </style>
</head>
<body>
    <div id="app">
        <!-- active的样式为 truefalse -->
        <div v-bind:class="[activeClass,errorClass,{test: isTest}]">测试样式</div>
        <div v-bind:class='arrClasses'>class绑定值得简化操作-数组</div>
        <div v-bind:class='objClasses'>class绑定值得简化操作-对象</div>
        <div class="base" v-bind:class="objClasses">默认class(base样式)</div>
        <!-- 默认的class样式base 和 objClasses样式 同时起作用 -->
        <button v-on:click='handle'>切换</button>
    </div> 
    <script src="js/vue.js"></script>
    <script>
        /*
            样式绑定相关语法细节:
            1. 对象绑定和数组绑定可以结合使用 test样式举例 [activeClass,errorClass,{test: isTest}]
            2. class绑定的值可以简化操作, 将类名放到一个数组里,绑定数据就可以了
            3. 会保留默认的class样式
        */ 
        var vm = new Vue({
            // el:告诉vue把数据插入到哪个位置
            el: "#app",
            // data: 提供数据
            data: {
                activeClass: 'active',
                errorClass: 'error',
                isTest: 'true',
                arrClasses: ['active','error'],
                objClasses: {
                    active: true,
                    error: true
                }
            },
            methods: {
                handle: function() {
                    // 控制isActive的值在true和false之间进行切换 添加active样式 或 不添加active样式
                    // this.activeClass = '';
                    // this.errorClass = '';
                    // this.isTest = false;

                    // 当点击切换得时候,会调用该方法,去掉objClasses中的error样式
                    this.objClasses.error = false;
                }
            }
        })
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

都挺好,刚刚好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值