Vue基础第四章 - v-bind指令
1、v-bind指令介绍
在前端开发过程中最常做的事莫过于class类名的绑定与style内联样式的修改,Vue中使用v-bind指令来实现这两个需求,在第二章中给出过简单的示例,下面我们来看一下v-bind指令的具体用法。
2、绑定class类名的三种方法
2.1、对象绑定法
所谓对象就是类似Python中的字典,以键值对的形式来动态控制一个class是否加载,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<title>Vue 示例</title>
</head>
<body>
<div id="app1">
<!--:class等价于v-bind:class,:class可以与普通class同时存在,此处通过:class的对象中的isActive和isError的值来控制active和error类是否加载,最后的渲染结果为<div class="static active"></div>-->
<div class="static" :class="{'active':isActive,'error':isError}"></div>
</div>
<script>
var app1=new Vue({
el:'#app1',
data:{
isActive:true,
isError:false
}
});
</script>
</body>
</html>
当对象中的class类较多时,可以使用计算属性或methods属性来绑定,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<title>Vue 示例</title>
</head>
<body>
<div id="app1">
<div class="static" :class="classes"></div>
</div>
<script>
var app1=new Vue({
el:'#app1',
data:{
isActive:true,
isError:false
},
computed:{
classes:function() {
return {active:this.isActive ,error:this.isError}
}
}
});
</script>
</body>
</html>
2.2、数组绑定法
数组绑定法就是给:class绑定一个数组,将data属性中的class类名引用到数组中,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<title>Vue 示例</title>
</head>
<body>
<div id="app">
<!--经过渲染后active和error类会被应用到div标签上-->
<div :class="[activeCls,errorCls]"></div>
</div>
<script>
var app=new Vue({
el:'#app',
data:{
activeCls:'active',
errorCls:'error'
}
})
</script>
</body>
</html>
使用数组绑定法时可以通过三元表达式来动态控制class类是否应用,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<title>Vue 示例</title>
</head>
<body>
<div id="app">
<!--此处error类将始终应用,active类将根据isActive的真假来控制是否应用-->
<div :class="[isActive ? activeCls : '',errorCls]"></div>
</div>
<script>
var app=new Vue({
el:'#app',
data:{
isActive:true,
activeCls:'active',
errorCls:'error'
}
})
</script>
</body>
</html>
三元表达式虽然可以动态控制class类是否应用,但是写起来比较复杂,为了在数组绑定法中能够动态控制class的应用与否我们还可以利用上面的对象绑定法,在数组绑定法中嵌套使用对象绑定法,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<title>Vue 示例</title>
</head>
<body>
<div id="app">
<div :class="[{'active':isActive},errorCls]"></div>
</div>
<script>
var app=new Vue({
el:'#app',
data:{
isActive:true,
errorCls:'error'
}
})
</script>
</body>
</html>
与对象绑定法一样,我们也可以在数组绑定法中使用计算属性来绑定class类,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<title>Vue 示例</title>
</head>
<body>
<div id="app">
<div :class="classes"></div>
</div>
<script>
var app=new Vue({
el:'#app',
data:{
size:'large',
disabled:true
},
computed:{
classes:function() {
<!--此处btn类始终应用,由于size值为large不为空,根据字符串拼接btn-large类被应用,当disabled为真时,btn-disabled类被应用-->
return ['btn',{['btn-'+this.size]:this.size !='',['btn-disabled']:this.disabled}]
}
}
})
</script>
</body>
</html>
2.3、组件绑定
我们可以在自定义Vue组件时在组件上应用class类,然后在调用该组件时再使用对象绑定法或数组绑定法在组件上继续绑定新的class类,在调用组件时绑定class类的方法只有当组件最外层是根元素才有效,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<script>Vue.component('my-component',{template:'<p class='article'>自定义组件</p>'});</script>
<title>Vue 示例</title>
</head>
<body>
<div id="app">
<my-component:class="[activeCls,errorCls]"></my-component>
</div>
<script>
var app=new Vue({
el:'#app',
data:{
activeCls:'active',
errorCls:'error'
}
})
</script>
</body>
</html>
3、绑定内联样式
v-bind绑定内联样式的方法与绑定class类名的方法一致,也是使用对象绑定法和数组绑定法,其中对象绑定法在绑定内联样式时较为常用,另外还有计算属性在绑定内联样式时也较为常用,如下示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<title>Vue 示例</title>
</head>
<body>
<div id="app">
<!--v-bind渲染内联样式的语法糖为:style,此处渲染后的效果为<div style="color:red;font-size:14px;">文本</div>-->
<div :style="styles">文本</div>
</div>
<script>
var app=new Vue({
el:'#app',
data:{
<!--css属性名称使用驼峰命名或短横分隔命名-->
styles:{
color:'red',
fontSize:14+'px'
}
}
})
</script>
</body>
</html>
Vue基础第四章 - v-bind指令的更多相关文章
- Vue基础(环境配置、内部指令、全局API、选项、内置组件)
1.环境配置 安装VsCode 安装包管理工具:直接下载 NodeJS 进行安装即可,NodeJS自带 Npm 包管理工具,下载地址:https://nodejs.org/en/download/安装 ...
- JAVA基础第四章-集合框架Collection篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- Vue.js-02:第二章 - 常见的指令的使用
一.前言 在上一章中,我们了解了一些在使用 Vue 进行开发中经常会遇到的基础概念,与传统的前端开发不同,Vue 可以使我们不必再使用 JavaScript 去操作 DOM 元素(还是可以用,但是极度 ...
- Vue基础第三章 - 计算属性
1.计算属性介绍 在第二章中我们介绍了在Vue的{{}}中可以使用一些简单的表达式进行计算,但是当表达式过长或者逻辑过于复杂就会变得不易理解和维护,比如第二章的示例{{ text.split(',') ...
- java基础(四章)
一. switch结构(开关语句)的语法 switch(表达式 ){ ------- [dream1]类型为int.char case 常量1 : ---------[ ...
- Python基础 第四章 字典(2)字典方法&章小结
1. clear 方法clear删除所有的字典项,就地执行,什么都不返回(或者说返回None) d = {} d['name'] = 'Gumby' d['age'] = 42 print(d) re ...
- Python基础 第四章 字典(1)
通过名称来访问其各个值的数据结构,映射(mapping). 字典,是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下.(键,可能是数.字符串.元组). 1.1 字典由 键 及其相 ...
- jQuery Mobile 基础(第四章)
1.主题 jQuery Mobile 提供了5种不同的主题样式, 从 "a" 到 "e" - 每一种主题的按钮,工具条,内容块等等颜色都不一致,每个主题的视觉效 ...
- v:bind指令对于传boolean值的注意之处
1,
随机推荐
- 基于form表单的极验滑动验证小案例
01.目录展示 02.url.py urlpatterns = [ path('admin/', admin.site.urls), path('login/',views.login), path( ...
- matplotlib之折线图
1.案例一 # coding=utf-8 from matplotlib import pyplot as plt import random # 设置字体相关 from matplotlib imp ...
- Java 生成 32位 UUID
UUID:Universally Unique Identifier 通用唯一识别码 现在很多数据库的主键id,由原来的int自增,改为 UUID 表示.因为 UUID 本身不可能重复,线程安全,完美 ...
- NFA转换为等价的DFA
在编译系统中,词法分析阶段是整个编译系统的基础.对于单词的识别,有限自动机FA是一种十分有效的工具.有限自动机由其映射f是否为单值而分为确定的有限自动机DFA和非确定的有限自动机NFA.在非确定的有限 ...
- 求助,在gmssl中添加第三方库engine的问题
求助gmssl的一个问题,想知道gmssl怎么添加自己的硬件engine,有搞过的大佬吗,求助.我现在将第三方的sdf标准库,在gmssl的源码中通过gmssl engine尝试添加总是报错libsd ...
- 安装 docker-registry-frontend
拉取镜像 最新的V2 docker pull konradkleine/docker-registry-frontend:v2 创建 docker-compose.yml version: ' se ...
- 【Ruby on Rails 学习五】Ruby语言的方法
1.方法的调用 2.自定义方法 3.带默认值的自定义方法 4.带返回值的自定义方法 方法或者说是函数,实际上是包含了一段代码,去执行某一个特定的过程. def add(a=3,b=2) return ...
- 【Qt开发】Qt5.7串口开发
QT5有专门的串口类: QSerialPort:提供访问串口的功能 QSerialPortInfo:提供系统中存在的串口的信息 具体使用方法: 1.在pro文件中加入: QT += seria ...
- Mac022-brew安装tool
1.Mac上查看目录的树结构 Step1:安装tree命令 brew install tree Step2:某一目录下执行tree,会将该目录下的所有目录以树形结构显示 $ tree $ tree - ...
- selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH
问题,找不到’geckodriver’ 的环境path,解决方案 下载geckodriver.exe 放到Firefox的安装目录下,如:(D:\火狐\Mozilla Firefox): 将火狐安装目 ...