用 Vue 绑定单个或多个 Class 名

上一篇:自定义组件添加原生事件

一、用 变量形式 绑定单个 Class 名

vue 中绑定单个 class 名还好说,直接写就可以了

<template>
  <div id="app">
    <!-- 因为是自定义属性,所以要用到 v-bind ,简写为 :   -->
    <!-- 3.将 box 绑定给 div -->
    <div :class="box"></div>
  </div>
</template>

<script>
export default {
  name: 'app',
  data () {
    return {
      // 2.在 data 中把 yellow 赋给 box
      box: 'yellow'
    }
  }
}
</script>

<style>
/* 1.在样式表中写好样式 */
.yellow{
  width: 200px;
  height: 200px;
  background: #ff0;
}
</style>
用 Vue 绑定单个Class 名
二、用 数组形式 绑定多个 Class 名

比如我们想再给这个 div 加个阴影

style 中写好样式

.shadow{
  box-shadow: 10px 10px 5px 0 #999;
}

data 中继续添加数据对象

<script>
export default {
  name: 'app',
  data () {
    return {
      box: 'yellow',
      shadow:'shadow'
    }
  }
}
</script>

在标签中以数组的形式绑定 Class

<template>
  <div id="app">
    <div :class="[box,shadow]"></div>
  </div>
</template>

就 OK 了。


用 数组形式 绑定多个 Class 名
三、用 json 形式 绑定多个 Class 名

该方法方便用于当同时添加多个 Class 名时,在某种情况下判断显示哪种样式

先写好样式

<style>
.yellow{
  width: 200px;
  height: 200px;
  background: #ff0;
}
.shadow{
  box-shadow: 10px 10px 5px 0 #999;
}
</style>

data 中添加数字对象,用来做判断

<script>
export default {
  name: 'app',
  data () {
    return {
      show1:true,
      show2:false
    }
  }
}
</script>

json 的形式绑定到 class 中,通过布尔值改变 show1show2 的值,来控制 div 的状态

<template>
  <div id="app">
    <div :class="{yellow:show1,shadow:show2}"></div>
  </div>
</template>
用 json 形式 绑定多个 Class

下一篇:父子组件间传值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容