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 相关文章推荐
javascript之大字符串的连接的StringBuffer 类
May 08 Javascript
javascript实现二分查找法实现代码
Nov 12 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
JS验证邮箱格式是否正确的代码
Dec 05 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
May 18 Javascript
JS实现留言板功能
Jun 17 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
vue组件间通信六种方式(总结篇)
May 15 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
VueJS实现用户管理系统
May 29 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
Discuz! Passport 通行证整合
2008/03/27 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
laravel入门知识点整理
2020/09/15 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python中的json总结
2018/10/11 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Python龙贝格法求积分实例
2020/02/29 Python
python SOCKET编程基础入门
2021/02/27 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
html5启动原生APP总结
2020/07/03 HTML / CSS
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
劳资专员岗位职责
2013/12/27 职场文书
先进党支部事迹材料
2014/01/13 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
认真学习保证书
2015/02/26 职场文书
服务行业标语口号
2015/12/26 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书