一、绑定class的几种方式

1.对象语法

直接看例子:

  1. <div id="app3">
  2. <div :class="{'success':isSuccess,'fail':isFail}">对象绑定class</div>  //简单的处理直接使用数据来判断
  3. <div :class="classes">计算属性绑定class</div>  //当class的表达式过长或逻辑复杂时,使用计算属性
  4. </div>
  1. var app3 = new Vue({
  2. el: '#app3',
  3. data: {
  4. isSuccess: true,
  5. isFail: false,
  6. error: false
  7. },
  8. computed: {
  9. classes: function(){
  10. return {
  11. success: this.isSuccess && !this.error,
  12. fail: this.isFail || !this.error
  13. }
  14. }
  15. }
  16. });

 2.数组语法

直接看例子:

  1. <div id="app4">
  2. <div :class="[successCls,failCls]">绑定多个class属性</div>  //用于来绑定多个class属性
  3. <div :class="[{'success':isSuccess},failCls]">绑定多个class属性一</div>  //动态的判断添加那些class属性,是最常用的
  4. </div>
  1. var app4 = new Vue({
  2. el: '#app4',
  3. data: {
  4. successCls: 'success',
  5. failCls: 'fail',
  6. isSuccess: true,
  7. isFail: false
  8. }
  9. });
  1. <div id= ”app”>
      <button :class= ”classes”></button>
    </div>
    var app = new Vue({
  2. el: '#app',
  3. data:{
  4. size : 'large',
  5. disabled : true
  6. },
  7. computed: {
  8. classes: function(){
  9. return [
  10. 'btn',
  11. {
  12. ['btn-'+this.size]: this.size,
  13. ["btn-disabled"]: this.disabled
  14. }
  15. ]
  16. }
  17. }
  18. });

使用计算属性给元素动态设置类名,在业务中经常用到,尤其是在写复用的组件时,所以在开发过程中,如果表达式较长或逻辑复杂,应该尽可能地优先使用计算属性。

3.在组件上使用

直接看例子:

  1. <div id="app5">
  2. <my-component :class="{'success': isSuccess}"></my-component>
  3. </div>
  1. Vue.component('my-component',{
  2. template: '<div class="fail">绑定组件class属性</div>'
  3. });
  4. var app5 = new Vue({
  5. el: '#app5',
  6. data: {
  7. isSuccess: true
  8. }
  9. });

这种用法仅适用于自定义组件的最外层是一个根元素,否则会无效,当不满足这种条件或需要给具体的子元素设置类名时,应当使用组件的props 来传递。

 二、绑定内联样式

直接看例子:

  1. <div id="app6">
  2. <div :style="{'color':color,'fontSize':fontSize+'px'}">文本</div>
  3. </div>
  1. var app6 = new Vue({
  2. el: '#app6',
  3. data: {
  4. color: 'red',
  5. fontSize: 14
  6. }
  7. });

大多数情况下, 直接写一长串的样式不便于阅读和维护,所以一般写在data 或computed 里

  1. <div id="app6">
  2. <div :style="style">文本</div>
  3. </div>
  1. var app6 = new Vue({
  2. el: '#app6',
  3. data: {
  4. style: {
  5. color: 'red',
  6. fontSize: 14
  7. }
  8. }
  9. });

vue class与style 绑定详解——小白速会的更多相关文章

  1. vue内置指令详解——小白速会

    指令 (Directives) 是带有 v- 前缀的特殊属性,职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM. 内置指令 1.v-bind:响应并更新DOM特性:例如:v-bi ...

  2. vue表单详解——小白速会

    一.基本用法 你可以用 v-model 指令在表单 <input> 及 <textarea> 元素上创建双向数据绑定. 但 v-model 本质上不过是语法糖.它负责监听用户的 ...

  3. vue计算属性详解——小白速会

    一.什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> ...

  4. vue-router详解——小白速会

    一.概述 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用. vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来. ...

  5. npm安装vue详细教程(图片详解)

    npm安装vue详细教程(图片详解) 一.总结 一句话总结:整个安装流程照着教程来,注意系统环境变量的配置,注意一下npm的本地仓库和缓存位置 教程 系统环境变量 仓库 缓存 1.什么情况下最适合用n ...

  6. Vue插件编写、用法详解(附demo)

    Vue插件编写.用法详解(附demo) 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共享使用某个变量,或者在某个方法之前执行一 ...

  7. vue视图不更新情况详解

    vue视图不更新情况详解:https://www.jb51.net/article/161371.htm

  8. vue和react全面对比(详解)

    vue和react对比(详解) 放两张图镇压小妖怪 本文先讲共同之处, 再分析区别 大纲在此: 共同点: a.都使用虚拟dom b.提供了响应式和组件化的视图组件 c.注意力集中保持在核心库,而将其他 ...

  9. Vue#Class 与 Style 绑定

    绑定HTMLCLASS 在我没看这之前,我觉得要写绑定class ,应该像绑定数据一样这么写 class ={{class-a}} 看官方教程时,不推荐这么写,推荐这样 v-bind:class=&q ...

随机推荐

  1. UVa11426 最大公约数之和(正版)

    题面 求\(\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}gcd(i, j)\) n<=4000000,数据组数T<=100 答案保证在64位带符号整数范围内(long ...

  2. 【Android】[Problem]-"Waiting for target device to come online".

    环境: win10专业版(创意者),Android studio 2.3.1 问题描述: 安装玩Android studio之后创建一个项目,建立AVD之后,运行程序时一直不能启动AVD,具体描述为: ...

  3. [转]What is a WebRTC Gateway anyway? (Lorenzo Miniero)

    [转]What is a WebRTC Gateway anyway? (Lorenzo Miniero) https://webrtchacks.com/webrtc-gw/ As I mentio ...

  4. Canvas 画布组件(官网翻译)

    Canvas画布 The Canvas is the area that all UI elements should be inside. The Canvas is a Game Object w ...

  5. MYSQL数据库学习十六 安全性机制

    16.1 MYSQL数据库所提供的权限 16.1.1 系统表 mysql.user 1. 用户字段 Host:主机名: User:用户名: Password:密码. 2. 权限字段 以“_priv”字 ...

  6. Redis 事务相关

    1. Redis服务端是个单线程的架构,不同的Client虽然看似可以同时保持连接,但发出去的命令是序列化执行的,这在通常的数据库理论下是最高级别的隔离2. 用MULTI/EXEC 来把多个命令组装成 ...

  7. ListView动态刷新adapter.notifyDataSetChanged()无反应

    前段时间在做一个动态刷新ListView(模拟聊天),遇到一个问题,调用notifyDataSetChanged()方法,数据源已经存在但是并没有动态刷新! 首先我们需要了解notifyDataSet ...

  8. 蓝牙4.0模块控制LED彩灯调光调色经验之谈

    基于蓝牙模块的智能LED彩灯调光调色控制思路如下: 在此,找一个低功耗蓝牙模块内嵌接入LED灯的控制电路板,接入LED彩灯的控制电路中. 蓝牙模块彩灯控制方式如下,本文两类来解说led灯的控制方式: ...

  9. [poj3349]Snowflake Snow Snowflakes_hash

    Snowflake Snow Snowflakes poj-3349 题目大意:给出n片雪花,每片雪花有6个角,每个角有一个权值.如果两片雪花中能够各选出一个点,使得从该点顺时针或者逆时针转,得到的权 ...

  10. 移动端H5地图离线瓦片方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 移动端的网速和流量耗费是移动开发必须考虑的两个点.常规的瓦片展 ...