vue的on-bind可以以`[]`方式传入数组?

发布于 2022-09-11 22:36:22 字数 377 浏览 10 评论 0

vue使用下面的可以传递一个数组给class:

<h1 :class="['thin', 'redcolor']">{{msg}}</h1>

但是怎么理解?如果没有vue,这里是不能加[]的,

<h1 class="['thin', 'redcolor']">{{msg}}</h1> 

<h1 :class="[thin, redcolor]">{{msg}}</h1>

这样都是不行的。

那么是否是vue的on-bind: 就可以加[]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

五里雾 2022-09-18 22:36:22

首先,vue绑定css有几种方式:

<!-- class 绑定 -->
<div :class="{ red: isRed }"></div>
<div :class="[classA, classB]"></div>
<div :class="[classA, { classB: isB, classC: isC }]">

你的第一种可以实现的方式等价于:

    <h1 :class ="['thin','redcolor']">test</h1>
    <h1 :class ="style">test</h1>

    data() {
      return {
        style:['thin','redcolor'],
        }
     } 

第二种<h1 class="['thin', 'redcolor']">{{msg}}</h1>不能实现的原因是,原生css不支持这种的写法 ,必须是:

<h1 class="['thin', 'redcolor']">{{msg}}</h1>
正确:<h1 class="thin redcolor">{{msg}}</h1> 

第三种不能实现的原因是:在vue中没有加引号代表的是变量而不是字符串

<h1 :class="[thin, redcolor]">{{msg}}</h1>
正确:
<h1 :class="[thin, redcolor]">{{msg}}</h1>
    data() {
      return {
        thin:'thin',
        redcolor:'redcolor',
        }
    }

以上所有方法最终都会被解析为

<h1 class="thin redcolor">test...</h1> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文