javascript - 使用 VueJS 条件应用类

标签 javascript vue.js vuejs2 vue-component vue-cli

我正在尝试申请 class<p>使用 VueJS 条件标记,但它根本不起作用,尽管它在 JSfiddle 上工作。我已经卡住三天了,请帮助我。

VueJS(在 main.js 中)

new Vue({
  el: "#test",
  data: {
    selected: "2"
  }
});

HTML(App.vue)

<div id="app">
  <div id="test">
    {{ selected }}
    <p :class="{ selection: 1 === selected }">
      heyyy 1
    </p>
    <p :class="{ selection: 2 == selected }">
      heyyy 2
    </p>
    <button @click="selected = 2">Switch</button>
  </div>
</div>

最佳答案

我假设您正在使用 Vue-CLI,因为您有 .vue文件,但是你的main.js使用 Vue CDN 的语法。也许您是从 fiddle 中复制了代码。

我也假设您有一个名为 .selection 的 CSS 类为此。

无论如何,App.vue有自己的组件实例,它不是 main.js安装实例(更深一层)。您的代码创建 selected在安装根目录中而不是 App.vue .

要修复,请在 App.vue 中创建它<script>部分改为:

<template>
<div id="app">
  <div id="test">
    {{ selected }}
    <p :class="{ selection: 1 === selected }">
      heyyy 1
    </p>
    <p :class="{ selection: 2 == selected }">
      heyyy 2
    </p>
    <button @click="selected = 2">Switch</button>
  </div>
</div>
</template>

<script>
export default {
  data() {
    return {
      selected: "2"
    }
  }
}
</script>

<style>
.selection {
  /* CSS */
}
</style>

关于javascript - 使用 VueJS 条件应用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60796783/

相关文章:

javascript - 通过百分比计算减少对象数组

javascript - 强制 Backbone 将属性保存为文件

vue.js - vuejs如何使用v-for只迭代数组的一部分

vue.js - 现有 html 页面中的 Vue 组件

javascript - 即使数组已更改且指定了 v-key,VueJS 也不会重新呈现列表

javascript - 如何将 props 传递给 vue.js 中的另一个组件

javascript - 在鼠标悬停时删除 Vue 自定义过滤器

javascript - 使 DIV 在单击时向上显示

typescript - 使用 typescript 在 vue3 中初始化没有值的 react 变量的最佳方法是什么?

javascript - 如何使用 Vue.js mixins 替换字符串值?