引言

操作元素的 class 列表和内联样式是数据绑定的一个常见需求

因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可

不过,字符串拼接麻烦且易错. 因此,在将 v-bind 用于 classstyle 时,Vue.js 做了专门的增强. 表达式结果的类型除了字符串之外,还可以是对象或数组。动态的绑定与修改

class绑定

绑定对象

:class 一个对象,以动态地切换 class,语法类似键值对, 布尔值的value决定了String类型的Key是否显示,大致语法 {className:Boolean}

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>class绑定对象</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.js"></script><style>.nameHide {display: none;}</style></head><body><div id="app"><h1 :class="{'nameHide': nameActive}"> uiu </h1></div><script>let vm = new Vue({el: "#app",data: {nameActive: false},})</script></body>
</html>

nameActive为false时

nameActive为true时

当然,有一点很重要,那就是可以多个class并存

<h1 :class="{'nameHide': nameActive,'redFont':true}"> uiu </h1>

绑定数组

可以把一个数组传给 v-bind:class,以应用一个 class 列表

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>class绑定数组</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.js"></script><style>.blueBackground {background-color: blue;}.redFont {color: red;}</style></head><body><div id="app"><h1 :class="[nameFontClass.Background, nameFontClass.color]"> uiu </h1></div><script>let vm = new Vue({el: "#app",data: {nameFontClass: {Background: "blueBackground",color: "redFont"}},})</script></body>
</html>


style绑定

在前端开发中,内联样式经常被使用到,Vue 中内联样式绑定语法灵活

CSS 属性名可以用驼峰式 (camelCase)短横线分隔 (kebab-case,记得用单引号括起来) 来命名.

小建议:如果,你曾使用过 React 或者将要学习它,建议采用与 React 同样的 CSS 属性代码风格驼峰式 (camelCase).

绑定对象

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>style绑定对象</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.js"></script></head><body><div id="app"><h1 :style="nameStyle"> uiu </h1></div><script>let vm = new Vue({el: "#app",data: {nameStyle: {'background-color': 'blue','color': 'red'}},})</script></body>
</html>

绑定数组

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>style绑定数组</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.js"></script></head><body><div id="app"><h1 :style="[blueBackground,redFont]"> uiu </h1></div><script>let vm = new Vue({el: "#app",data: {blueBackground: {'background-color': 'blue'},redFont: {'color': 'red'}},})</script></body>
</html>

自动前缀

在开发中,由于浏览器内核不同,使用某些 CSS 属性需要带各浏览器的前缀,然而如果你在 Vue 中使用了 v-bind:style你完全不用去考虑,因为 Vue 在编译过程中,会自动给需要前缀的属性加前缀

引申知识: 通过CANIUSE查看询 CSS 属性兼容性,自动前缀包 Autoprefixer、postcss

【Vue】Class与Style的绑定 —— 绑定对象与数组相关推荐

  1. 6.Vue Class 与 Style 绑定

    操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是 attribute,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易 ...

  2. Vue.js:vue指令(给标签属性赋Vue变量v-bind,绑定事件 v-on)vue事件处理函数中, 拿到事件对象,6个事件修饰符

    1. 给标签属性赋Vue变量v-bind 在vue中,v-bind指令可以动态的给标签的属性设置值, 语法:v-bind:属性名="vue变量" 简写::属性名="vue ...

  3. Vue第一部分(3):事件绑定与标签属性赋值

    1.事件绑定:v-on指令  基本使用 在Vue中通过 v-on 指令给页面元素绑定事件. 语法: v-on:事件名="js代码片段或函数" //事件名=事件属性-on 比如:cl ...

  4. Vue语法:类名和样式绑定

    Vue语法:类名和样式绑定 虽然类名class和样式style接收的类型都是字符串,但实际上类名是由数组拼接而成,而样式是由对键值对拼接而成. 通过字符串.数组.和对象三种方式为节点绑定类名属性: & ...

  5. 让jquery easyui datagrid列支持绑定嵌套对象

    嵌套对象是指返回的json数据,是对象的某个属性自带有属性.而我们恰恰又需要这个属性,默认情况下easyui的datagrid是不支持绑定嵌套对象的.比如:datagrid的field属性只能为fie ...

  6. v-for 循环 绑定对象 和数组

    <!--v-for 迭代数组--><div id="app11"><div v-for="info in infos">&l ...

  7. Spring-AOP @AspectJ进阶之绑定代理对象

    概述 实例 概述 使用this()或target()可绑定被代理对象实例,在通过类实例名绑定对象时,还依然具有原来连接点匹配的功能,只不过类名是通过增强方法中同名入参的类型间接决定罢了. 这里我们通过 ...

  8. 绑定到对象上的copyWithin方法

    对于在数组上使用copyWithin方法应该都很熟悉,但是绑定到对象上呢? [].copyWithin.call({length: 5, 3: 1}, 0, 3) I just began to le ...

  9. 将json绑定为对象_了解自定义对象创建:JSON绑定概述系列

    将json绑定为对象 让我们看一下JSON绑定如何处理自定义对象的创建. 本系列的下一篇文章将介绍如何使用适配器自定义JSON-B. JSON-B期望所有类都有一个公共的无参数构造函数 ,在反序列化过 ...

最新文章

  1. Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)
  2. Spring Boot 2.0官方文档之 Actuator
  3. ArcGIS Pro 制作与发布高程服务Elevation Layer
  4. WildFly上具有AngularJS的Java EE 7和Java WebSocket API(JSR 356)
  5. 微信回应朋友圈广告无法一键关闭:将持续优化产品体验
  6. UE4联网机制和多人游戏总结 (第一部分)
  7. 基于matlab的双闭环直流调速系统,基于MATLAB的双闭环直流调速系统建模与仿真.PDF...
  8. 漂亮有创意的思维导图模板下载教程,教你思维导图怎么画
  9. 快速筛选打卡时间日期等数据:EXCEL筛选查找某一时间点是否在某一时间段内
  10. 验证码接码短信平台 - 小程序版
  11. LIFO栈 ADT接口 链表实现
  12. 会说话的汤姆猫游戏源码下载
  13. oracle重做日志教程,Oracle重做日志管理
  14. 讨论数据增强(data augmentation)的有效性
  15. Luckysheet导出excel
  16. IOS破解软件,比较全的网站。
  17. 拉格朗日Lagrange插值多项式
  18. [HY000][1822] Failed to add the foreign key constraint. Missing index for constraint ‘fk_com’
  19. 【毕业设计】室内定位系统(wifi指纹定位)
  20. ajax防止csrf,django ajax提交避免csrf_toke错误

热门文章

  1. hive 常见的函数
  2. 【历史上的今天】2 月 8 日:谷歌地图推出;暴雪公司成立;Elasticsearch 首次公开发布
  3. centos7 docker搭建mysql 5.7 目录映射+允许远程连接+host网络模式
  4. 成为一名推荐系统工程师永远都不晚
  5. 推荐一个opengl系统学习的教程
  6. 军人的女友永远都是那个“傻丫头”
  7. Keil C51编译/链接/优化
  8. Matlab数学建模小白篇
  9. Cesium开发基础笔记总结(加载影像、加载地形数据、加载矢量)
  10. 行业寒冬:java技术工程师适合女生吗