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 相关文章推荐
同时使用n个window onload加载实例介绍
Apr 25 Javascript
JQuery页面的表格数据的增加与分页的实现
Dec 10 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
Mar 20 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
微信小程序 slider 详解及实例代码
Jan 10 Javascript
JavaScript纯色二维码变成彩色二维码
Jul 23 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
Jul 13 jQuery
详解Vue 项目中的几个实用组件(ts)
Oct 29 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
Jul 14 Javascript
three.js 制作动态二维码的示例代码
Jul 31 Javascript
DWR内存兼容及无法调用问题解决方案
Oct 16 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
理解php原理的opcodes(操作码)
2010/10/26 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
JS字符串函数扩展代码
2011/09/13 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
Python中使用HTMLParser解析html实例
2015/02/08 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
解决Python使用列表副本的问题
2019/12/19 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
给国外客户的邀请函
2014/01/30 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
学校政风行风整改方案
2014/10/25 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
《司马光》教学反思
2016/02/22 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
Python中super().__init__()测试以及理解
2021/12/06 Python
Win11 BitLocker 驱动器加密
2022/04/19 数码科技
mysql幻读详解实例以及解决办法
2022/06/16 MySQL