vue 中动态绑定class 和 style的方法代码详解


Posted in Javascript onJune 01, 2018

先列举一些例子

class="['content',{'radioModel':checkType}]"  
class="['siteAppListDirNode',{open:appitem.open==true}]" 
class="['portalCenterMenu',{showNav:!showHideNav,hideNav:showHideNav}]" 
class="{shortcutMenuShow:!showHideNav,shortcutMenuHide:showHideNav}" 
style="{height:checkType?'423px':'385px'}" 
src="userInfo.userFace?userInfo.userFace:defaultHead"

再来看详细解释

Vue.js 的核心是一个响应的数据绑定系统,它允许我们在普通 HTML 模板中使用特殊的语法将 DOM “绑定”到底层数据。被绑定的DOM 将与数据保持同步,每当数据有改动,相应的DOM视图也会更新。基于这种特性,通过vue.js动态绑定class就变得非常简单。

1. 数据绑定

vue 指令以 v- 前缀标示,数据绑定的指令 v-bind:属性名, 简写为 :属性名, 简单的数据绑定例子如下:

<a v-bind:href="https://3water.com/">三水点靠木首页</a>

简写:

<a :href="https://3water.com/">三水点靠木首页</a>

2. 动态绑定class

vue 的分隔符默认是 {{ }}, 在分隔符里面的字符串会被认为是数据变量,可以通过 class="{{ className }}" 方式设置class,但是vue不推荐这种方式与 v-bind:class 的方式混用,二者只能选其一。v-bind:class 虽然与class属性里绑定变量的方式不能共存,却可以与原生的class特性共存, 一个DOM标签中允许同时出现原生class和v-bind:class。

2.1 v-bind:class 支持string类型,不建议这样使用,因为string值是固定不变的,无法实现动态改变class的需求

HTML代码:

<div :class=" 'classA classB' ">Demo1</div>

渲染后的HTML:

<div class="classA classB">Demo1</div>

2.2 v-bind:class 支持数据变量,当变量值改变时,将同时更新class。v-bind:class指令的值限定为绑定表达式,如javascript表达式

HTML代码:

<div :class="classA">Demo2</div>

Javascript代码:

data: {
 classA: 'class-a' //当classA改变时将更新class
}

渲染后的HTML:

<div class="class-a">Demo2</div>

写在指令中的值会被视作表达式,如javascript表达式,因此v-bind:class接受三目运算:

HTML代码:

<div :class="classA ? 'class-a' : 'class-b' ">Demo3</div>

渲染后的HTML:

<div class="class-a">Demo3</div>

2.3 v-bind:class 支持对象,对象改变时会动态更新class

HTML代码:

<div :class="{ 'class-a': isA, 'class-b': isB}">Demo4</div>

Javascript代码:

data: {
 isA: false, //当isA改变时,将更新class
 isB: true  //当isB改变时,将更新class
}

渲染后的HTML:

<div class="class-b">Demo4</div>

HTML代码:

<div :class="objectClass">Demo5</div>

Javascript代码:

data: {
 objectClass: {
  class-a: true,
  class-b: false
 }
}

渲染后的HTML:

<div class="class-a">Demo5</div>

2.4: v-bind:class支持数组, 数组里的变量改变时,会动态更新class列表

HTML代码:

<div :class="[classA, classB]">Demo6</div>

Javascript代码:

data: {
 classA: 'class-a',
 classB: 'class-b'
}

渲染后的HTML:

<div class="class-a class-b">Demo6</div>

数组中可以包含object类型,数组中的object对象改变,也会更新class列表

HTML代码:

<div :class="[classA, classB]">Demo7</div>

Javascript代码:

data: {
 classA: 'class-a',
 objectClass: {
  classB: 'class-b', // classB 的值为class-b, 则将classB的值添加到class列表
  classC: false,  // classC值为false,将不添加classC
  classD: true  // classD 值为true,classC将被直接添加到class列表
}
}

渲染后的HTML:

<div class="class-a class-b classD">Demo7</div>

总结:触类旁通,基本上都一样。

以上所述是小编给大家介绍的vue 中动态绑定class 和 style的方法代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
学习面向对象之面向对象的术语
Nov 30 Javascript
各情景下元素宽高的获取实现代码
Sep 13 Javascript
jquery删除指定子元素代码实例
Jan 13 Javascript
jQuery实现长按按钮触发事件的方法
Feb 02 Javascript
JavaScript中Function详解
Feb 27 Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
jQuery无刷新上传之uploadify3.1简单使用
Jun 18 Javascript
jQuery网页定位导航特效实现方法
Dec 19 Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
Mar 26 Javascript
一个简单的node.js界面实现方法
Jun 01 #Javascript
浅析前端路由简介以及vue-router实现原理
Jun 01 #Javascript
Vue中的混入的使用(vue mixins)
Jun 01 #Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 #Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 #Javascript
Express之托管静态文件的方法
Jun 01 #Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 #Javascript
You might like
Yii框架函数简单用法分析
2019/09/09 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
python实现矩阵乘法的方法
2015/06/28 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Python实现Dijkstra算法
2018/10/17 Python
详解Django 时间与时区设置问题
2019/07/23 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
python Tensor和Array对比分析
2020/01/08 Python
Python中logging日志库实例详解
2020/02/19 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
巴西女装购物网站:Eclectic
2018/04/24 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
人民调解员培训方案
2014/06/05 职场文书
秋冬农业生产标语
2014/10/09 职场文书
爱心捐款感谢信
2015/01/20 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
2015年老干部工作总结
2015/04/23 职场文书
2015国庆节感想
2015/08/04 职场文书
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电