vue学习笔记3: 动态绑定

徘徊边缘 提交于 2020-01-19 19:25:31

一、知识点

动态绑定:

vue-class:

  • 三目写法
  • 对象写法
  • 数组写法

vue-style:

  • 三目写法
  • 对象写法
  • 数组写法

二、代码示例

1. vue-class

vue-class三目写法

<head>
		<meta charset="utf-8">
		<script src="./js/vue.js"></script><!-- 引入vue.js -->
		<style>
			.red {
				background: red;     /* isActive为true时的样式 */
			}

			.yellow {
				background: yellow;   /* isActive为false时的样式 */
			}
		</style>
	<body>
		<div id="div1">
			<!-- 视图层新建一个div -->
			<div :class="isActive?'red':'yellow'">动态绑定class-三目写法</div> <!-- 当isActive为true时,背景为red,否则为yellow -->
			<button @click="handleclick()">切换</button>    <!-- 通过点击按钮改变isActive的值 -->
		</div>

		<script>
			var vm = new Vue({
				el: '#div1', //绑定视图层的id
				data: {
					isActive: true                    //isActive初始值为true
				},
				methods: {
					handleclick() {
						this.isActive = !this.isActive //改变isActive的值,true变false,false变true
					}
				}
			})
		</script>
	</body>

运行结果:
在这里插入图片描述
点击切换按钮效果:
在这里插入图片描述

vue-class对象写法

管理多个class时,只需要通过class的属性值为true或false即可

<body>
		<div id="div1">
			<!-- 视图层新建一个div -->
			<div :class="classobj">动态绑定class-对象写法</div>
		</div>

		<script>
			var vm = new Vue({
				el: '#div1', //绑定视图层的id
				data: {
					classobj: {
						a: true,
						b: true,
					},
				}
			})
		</script		
</body>

运行结果:
在这里插入图片描述
我们可以看出a和b为true时,a,b类都用上了

当我们在浏览器控制台把a改为false
在这里插入图片描述
运行结果如下:
在这里插入图片描述
class中只有b了,所以可以通过对想法快速管理我们的类

vue-class数组写法

<body>
		<div id="div1">
			<!-- 视图层新建一个div -->
			<div :class="classarr">动态绑定class-数组写法</div>
		</div>

		<script>
			var vm = new Vue({
				el: '#div1', //绑定视图层的id
				data: {
					classarr:["a","b"],
				}
			})
		</script		
</body>

运行结果:
在这里插入图片描述
如果想管理类直接对数组进行操作就行

对数组执行删除操作(删掉b)
在这里插入图片描述
操作后结果:
在这里插入图片描述
对数组执行新增操作(新增c)
在这里插入图片描述
操作后结果:
在这里插入图片描述

刚才通过vue-class对三目写法,对象写法,数组写法进行了一个详细的讲解,相信大家对他们也有了一定的了解,由于原理相同,vue-style我们直接上代码

2. vue-style

vue-style三目写法

<body>
		<div id="div1">
			<!-- 视图层新建一个div -->
			<div :style="'background:'+(isActive?'red':'yellow')">动态绑定style-三目写法</div>  <!-- isActive为true时,背景色为red,否则为yellow -->
			<button @click="handleclick()">切换</button>
		</div>

		<script>
			var vm = new Vue({
				el: '#div1', //绑定视图层的id
				data: {
					isActive: true,    //isActive初值值为true
				},
				methods: {
					handleclick() {
						this.isActive = !this.isActive     //通过点击改变isActive的值
					}
				}
			})
		</script>
</body>

vue-style对象写法

<body>
		<div id="div1">
			<!-- 视图层新建一个div -->
			<div :style="styleobj">动态绑定style-对象写法</div>
		</div>

		<script>
			var vm = new Vue({
				el: '#div1', //绑定视图层的id
				data: {
					styleobj: {
						background: 'red'      //把背景色设为红色
					},
				}
			})
		</script>
</body>

vue-style数组写法

<body>
		<div id="div1">
			<!-- 视图层新建一个div -->
			<div :style="stylearr">动态绑定style-数组写法</div>
		</div>

		<script>
			var vm = new Vue({
				el: '#div1', //绑定视图层的id
				data: {
					stylearr:[
						{background:"yellow"}		   //背景色为黄色
					]
				}
			})
		</script>
</body>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!