vue class与style 绑定详解——小白速会
一、绑定class的几种方式
1.对象语法
直接看例子:
<div id="app3">
<div :class="{'success':isSuccess,'fail':isFail}">对象绑定class</div> //简单的处理直接使用数据来判断
<div :class="classes">计算属性绑定class</div> //当class的表达式过长或逻辑复杂时,使用计算属性
</div>
var app3 = new Vue({
el: '#app3',
data: {
isSuccess: true,
isFail: false,
error: false
},
computed: {
classes: function(){
return {
success: this.isSuccess && !this.error,
fail: this.isFail || !this.error
}
}
}
});
2.数组语法
直接看例子:
<div id="app4">
<div :class="[successCls,failCls]">绑定多个class属性</div> //用于来绑定多个class属性
<div :class="[{'success':isSuccess},failCls]">绑定多个class属性一</div> //动态的判断添加那些class属性,是最常用的
</div>
var app4 = new Vue({
el: '#app4',
data: {
successCls: 'success',
failCls: 'fail',
isSuccess: true,
isFail: false
}
});
<div id= ”app”>
<button :class= ”classes”></button>
</div>
var app = new Vue({
el: '#app',
data:{
size : 'large',
disabled : true
},
computed: {
classes: function(){
return [
'btn',
{
['btn-'+this.size]: this.size,
["btn-disabled"]: this.disabled
}
]
}
}
});
使用计算属性给元素动态设置类名,在业务中经常用到,尤其是在写复用的组件时,所以在开发过程中,如果表达式较长或逻辑复杂,应该尽可能地优先使用计算属性。
3.在组件上使用
直接看例子:
<div id="app5">
<my-component :class="{'success': isSuccess}"></my-component>
</div>
Vue.component('my-component',{
template: '<div class="fail">绑定组件class属性</div>'
});
var app5 = new Vue({
el: '#app5',
data: {
isSuccess: true
}
});
这种用法仅适用于自定义组件的最外层是一个根元素,否则会无效,当不满足这种条件或需要给具体的子元素设置类名时,应当使用组件的props 来传递。
二、绑定内联样式
直接看例子:
<div id="app6">
<div :style="{'color':color,'fontSize':fontSize+'px'}">文本</div>
</div>
var app6 = new Vue({
el: '#app6',
data: {
color: 'red',
fontSize: 14
}
});
大多数情况下, 直接写一长串的样式不便于阅读和维护,所以一般写在data 或computed 里
<div id="app6">
<div :style="style">文本</div>
</div>
var app6 = new Vue({
el: '#app6',
data: {
style: {
color: 'red',
fontSize: 14
}
}
});
vue class与style 绑定详解——小白速会的更多相关文章
- vue内置指令详解——小白速会
指令 (Directives) 是带有 v- 前缀的特殊属性,职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM. 内置指令 1.v-bind:响应并更新DOM特性:例如:v-bi ...
- vue表单详解——小白速会
一.基本用法 你可以用 v-model 指令在表单 <input> 及 <textarea> 元素上创建双向数据绑定. 但 v-model 本质上不过是语法糖.它负责监听用户的 ...
- vue计算属性详解——小白速会
一.什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> ...
- vue-router详解——小白速会
一.概述 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用. vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来. ...
- npm安装vue详细教程(图片详解)
npm安装vue详细教程(图片详解) 一.总结 一句话总结:整个安装流程照着教程来,注意系统环境变量的配置,注意一下npm的本地仓库和缓存位置 教程 系统环境变量 仓库 缓存 1.什么情况下最适合用n ...
- Vue插件编写、用法详解(附demo)
Vue插件编写.用法详解(附demo) 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共享使用某个变量,或者在某个方法之前执行一 ...
- vue视图不更新情况详解
vue视图不更新情况详解:https://www.jb51.net/article/161371.htm
- vue和react全面对比(详解)
vue和react对比(详解) 放两张图镇压小妖怪 本文先讲共同之处, 再分析区别 大纲在此: 共同点: a.都使用虚拟dom b.提供了响应式和组件化的视图组件 c.注意力集中保持在核心库,而将其他 ...
- Vue#Class 与 Style 绑定
绑定HTMLCLASS 在我没看这之前,我觉得要写绑定class ,应该像绑定数据一样这么写 class ={{class-a}} 看官方教程时,不推荐这么写,推荐这样 v-bind:class=&q ...
随机推荐
- HDU4812
树分治 求逆元请递推,不然会TLE 开桶记录即可 注意常数 # pragma comment(linker,"/STACK:102400000,102400000") # incl ...
- 使用 vscode将本地项目上传到github以及删除github上的某个文件夹
安装Git后,可以看到windows环境下有两个命令输入窗口Git CMD 和Git Bash Git GUI是可视化图形界面 Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能 ...
- oracle 12c 安装指南(各种问题总结)
下一学期要学习数据库的知识,趁着敲代码之余,安装著名的oracle来放松一下 1.首先从官网下载安装包http://www.oracle.com/technetwork/database/enterp ...
- 访问不了firefox附加组件页面怎么办
最近重新使用火狐浏览器的时候发现访问不了firefox附加组件页面了,一直是一个空白的页面,估计是被墙的原因,于是网上查了查,说是修改hosts即可,我修改后就可以正常访问了.现在分享出来: 在hos ...
- WordPress博客彻底关闭图片缩略图功能的方法
最近感觉没发几篇文章,然后查看cpanel面板的时候发现不知不觉我的空间突然被占用了很多,不能忍啊,我查看了一下磁盘占用,发现是缩略图搞的鬼,我 的文章中的图片都是保存在七牛中的,只有特色图片是不能使 ...
- python 全栈开发,Day1
python基础一 一,Python介绍 python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为 ...
- 谁能用通俗的语言解释一下什么是 RPC 框架?
转载自知乎:https://www.zhihu.com/question/25536695 知乎上很多问题的答案还是很好的,R大就经常在上面回答问题 关于RPC你的题目是RPC框架,首先了解什么叫RP ...
- 挂载U盘和移动硬盘
1, 挂载U盘和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的.使用方法和移动硬盘完全一样.插入U盘之前[root at pldyrouter root]# fdisk - ...
- parted分区和挂载及非交互式操作
author : headsen chen date : 2017-11-17 09:45:36 个人原创,转载请注明作者,出处,否则依法追究法律责任 1,将磁盘上原有的分区删除掉: 进入:#pa ...
- shell脚本之for循环
shell脚本之for循环 author :headsen chen 2017-10-18 09:50:41 个人原创,转载请注明.否则依法追究法律责任 1,cat forloop ...