vue动态绑定class的几种方式

对象方法

-最简单的绑定(这里的active加不加单引号都可以,以下也一样都能渲染)

 :class="{ ‘active‘: isActive }" 
  • 判断是否绑定一个active
:class="{‘active‘:isActive==-1}"
或者
:class="{‘active‘:isActive==index}"
  • 绑定并判断多个
第一种(用逗号隔开)
:class="{ ‘active‘: isActive, ‘sort‘: isSort }"
第二种(放在data里面)
//也可以把后面绑定的对象写在一个变量放在data里面,可以变成下面这样
:class="classObject"
data() {
  return {
    classObject:{ active: true, sort:false }
  }
}

第三种(使用computed属性)
:class="classObject"
data() {
  return {
    isActive: true,
    isSort: false
  }
},
computed: {
  classObject: function () {
    return {
      active: this.isActive,
      sort:this.isSort
    }
  }
}
数组方法
  • 单纯数组
:class="[isActive,isSort]"
data() {
  return{
    isActive:‘active‘,
    isSort:‘sort‘
 }
}
  • 数组与三元运算符结合判断选择需要的class
    (注意:三元运算符后面的“:”两边的class需要加上单引号,否则不能正确渲染)
:class="[isActive?‘active‘:‘‘]"
或者
:class="[isActive==1?‘active‘:‘‘]"
或者
:class="[isActive==index?‘active‘:‘‘]"
或者
:class="[isActive==index?‘active‘:‘otherActiveClass‘]"
  • 数组对象结合动态判断
//前面这个active在对象里面可以不加单引号,后面这个sort要加单引号
:class="[{ active: isActive }, ‘sort‘]"
或者
:class="[{ active: isActive==1 }, ‘sort‘]"
或者
:class="[{ active: isActive==index }, ‘sort‘]"

原文地址:https://www.cnblogs.com/lwming/p/10922934.html

时间: 2024-11-08 01:54:35

vue动态绑定class的几种方式的相关文章

关于Vue动态绑定样式的几种方式

一.按钮数组,选中时,样式改变(小程序 + vant weapp ,其他的按照需求改改便好) 1.Template: <view v-for="(item, index) in size" :key="index" class="standard-button-single"> <van-button :color="active == index ? '#EC792F':'#EEEFF0'" :custom

vue组件通信的几种方式

最近用vue开发项目,记录一下vue组件间通信几种方式 第一种,父子组件通信 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child.vue的中创建props,然后创建一个名为message的属性 child.png 3.在App.vue中注册Child组件,并在template中加入child标签,标签中添加message属性并赋值 App2.png 4.保存修改的文件,查看浏览器 browser.png 5.我们依然可以对m

详解vue 路由跳转四种方式 (带参数)

详解vue 路由跳转四种方式 (带参数):https://www.jb51.net/article/160401.htm 1.  router-link ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1. 不带参数  <router-link :to="{name:'home'}"> <router-link :to="{path:'/home'}"> //name,path都行, 建议用name /

Vue创建组件的三种方式

1.使用 Vue.extend 来创建全局的Vue组件 <div id="app"> <!-- 如果要使用组件,直接,把组件的名称,以 HTML 标签的形式,引入到页面中,即可 --> <mycom1></mycom1> </div> <script> // 1.1 使用 Vue.extend 来创建全局的Vue组件 // var com1 = Vue.extend({ // template: '<h3&g

vue定义data的三种方式与区别

var app = new Vue({ el: '#yanggb', data: { yanggb: 'yanggb' } }) 2.第二种写法,函数. var app = new Vue({ el: '#yanggb', data: function() { return { yanggb: 'yanggb' } } }) 3.第三种写法,函数,是第二种写法的ES6写法. var app = new Vue({ el: '#yanggb', data() { return { yanggb:

vue 绑定样式的几种方式

vue 绑定样式 对象语法 1.v-bind:class设置一个对象,动态切换class <div :class="{'active':isActive}">xxx</div> 样式是否起作用,根据isActive的布尔值是否为true 2.:class可以和class共存 <div class="static" :class="{'active':isActive,'error':isError}">xxx&

VUE定义data的三种方式

写法粗糙,只是为了自己工作时方便查看 <script src="https://unpkg.com/vue/dist/vue.js"></script><div id="app">    <span>{{count}}</span>    <button @click="inc">+</button></div><script>var ap

Vue实现动画的几种方式

1. vue内置组件transition 元素出现和消失都呈现动画 <!-- 将要使用动画的内容放在transition里即可 --> <transition name="fade"> <div v-show="show"></div> </transition> .fade-enter-active, .fade-leave-active { transition: opacity .5s } .fade

vue 路由传参 params 与 query两种方式的区别

初学vue的时候,不知道如何在方法中跳转界面并传参,百度过后,了解到两种方式,params 与 query.然后,错误就这么来了:  router文件下index.js里面,是这么定义路由的: { path:"/detail", name:"detail", component:home } 我想用params来传参,是这么写的,嗯~ this.$router.push({ path:"/detail", params:{ name:'nameV