首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue2理解:类属性

Vue2理解:类属性
EN

Stack Overflow用户
提问于 2017-02-15 20:19:35
回答 1查看 546关注 0票数 1

所以,我正在看vue2教程,当我发现这段代码时,我不明白为什么,也不明白它是如何工作的。

这里有一种风格:

代码语言:javascript
复制
<style type="text/css">
    .is-loading { background: red }
</style>

而html:

代码语言:javascript
复制
<div id="root">
<button :class="{ 'is-loading': isLoading }" @click="toggleClass"> Toggle Me</button>
</div>

以及vue代码:

代码语言:javascript
复制
new Vue({
   el: '#root', 
   data: {
      isLocading: false
   },
   methods: {
        toggleClass: function(){
            this.isLoading = !this.isLoading;
        }
   }
});

现在,当单击按钮时,这段代码会切换按钮的类名,但我不理解的是{ 'is-loading': isLoading }部件,它似乎不是三元操作符。

它到底在说什么?类名是首先提到的是is-loading,但变量出现在它之后。

这看起来不应该像{ variable ? 'class' ? 'no-class' }吗?换句话说,变量不应该先出现,然后再出现类吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-16 01:30:15

Vue.js具有运行所有数据绑定区域内的Javascript表达式的能力。

这是发生在背景中的一点Vue.js魔法,但您可以从本质上这样想:

  1. Vue可以看到:class=上指定数据绑定。
  2. Vue查看class=属性中的内容,并看到以下内容:{ 'is-loading': isLoading }
  3. Vue注意到它是一个对象,因此它遍历每个键/值对并计算它,如果值(在本例中为isLoading)为真,它将键(is-loading)添加到类属性中,如果值为false,则不添加键(is-loading)。

Vue可以解释数据绑定语法中的三元组,但是这是Vue内部魔术的一部分,它允许您轻松地为一个组件创建多个UI状态变体。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42259230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档