[vue]为什么v-bind:class的第二个class需要加引号

1.问题是关于vue.js框架中class绑定的
2.代码
下面是中文官网给出的示例代码,英文官网也是相同的(我加了test内容,方便debug)
https://cn.vuejs.org/v2/guide...
搜索:绑定 HTML Class
即可

<div class="static"
     v-bind:class="{ active: isActive, 'text-danger': hasError }">test
</div>

我的问题就是为什么了第2个class是有引号的。
如果我去了引号,下面的就不能生效

<div class="static"
     v-bind:class="{ active: isActive, text-danger: hasError }">test
</div>

原因:

因为 {}内的代码是要拿去当js解析的,js中变量是没有用 ' - '号连接

就像 css中 font-size 是用 - 号连接

到了js中 就必须用驼峰的写法

此处,v-bind后面的值为表达式,表达式写法和JS基本一样,但是所有的this都被省略。
JS里面,键名如果有-符号,也是需要加引号。JS中

{
    active: isActive,
    text-danger: hasError
}

是无效的,而

{
    'active': isActive,
    'text-danger': hasError
}

是有效的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值