Vue.js:动态绑定CSS样式、指令v-if、v-else-if、v-show、v-for

学习Vue.js第五天

动态绑定CSS样式

			<!--绑定了changeColor样式,changeC默认为false,单击变非-->
			<div v-bind:class="{changeColor:changeC}" v-on:click="changeC=!changeC">
				<span>示例一</span>
			</div>

在这里插入图片描述

  • 示例2
			<button v-on:click="changeC=!changeC">color</button>
			<button v-on:click="changeL=!changeL">length</button>
			<div v-bind:class="compClasses">
				<span>示例二</span>
			</div>

在这里插入图片描述
Vue指令v-if

  • v-if
			<button v-on:click="error=!error">错误信息</button>
			<button v-on:click="success=!success">成功信息</button>
			<p v-if="error">错误404</p>
			<p v-if="success">成功200</p>

在这里插入图片描述

  • v-else-if
  • 如果有错误信息,成功信息是点不出来的,相反可以.
			<p v-else-if="success">成功200</p>

在这里插入图片描述

  • v-show
  • 它只是 display:none而已,不想v-if不会出现在文档里
			<p v-show="error">错误404</p>
			<p v-show="success">成功200</p>

在这里插入图片描述

  • v-for
			<b>names1</b>
			<ul>
				<li v-for="name in names1">{{name}}</li>
			</ul>
			<b>names2</b>
			<ul>
				<li v-for="name in names2">姓名:{{name.name}},年龄:{{name.age}}</li>
			</ul>

在这里插入图片描述

  • div同样可以遍历,但是遍历多次就渲染多少个div
  • 可以用template,直接把div改成template这时候效果一样但不会渲染
    全部代码
<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title>Vue.js</title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<style>
			span {
				background: hotpink;
				display: inline-block;
				padding: 10px;
				color: #fff;
				margin: 10px 0;
			}
			
			.changeColor span {
				background: green;
			}
			
			.changeLength span:after {
				content: "length+";
				margin-left: 10px;
			}
		</style>
	</head>

	<body>
		<div id="vue-app">
			<h2>示例1</h2>
			<div v-bind:class="{changeColor:changeC}" v-on:click="changeC=!changeC">
				<span>示例一</span>
			</div>
			<h2>示例2</h2>
			<button v-on:click="changeC=!changeC">color</button>
			<button v-on:click="changeL=!changeL">length</button>
			<div v-bind:class="compClasses">
				<span>示例二</span>
			</div>
			<h2>v-if条件</h2>
			<button v-on:click="error=!error">错误信息</button>
			<button v-on:click="success=!success">成功信息</button>
			<p v-show="error">错误404</p>
			<p v-show="success">成功200</p>
			<h2>v-for 循环</h2>
			<b>names1</b>
			<ul>
				<li v-for="name in names1">{{name}}</li>
			</ul>
			<b>names2</b>
			<ul>
				<li v-for="name in names2">姓名:{{name.name}},年龄:{{name.age}}</li>
			</ul>
		</div>
	</body>
	<script>
		new Vue({
			el: "#vue-app",
			data: {
				changeC: false,
				changeL: false,
				error: false,
				success: false,
				names1: ["old monster", "zhangsan", "lisi", "wangwu"],
				names2: [{
						name: "xiaohong",
						age: 18
					},
					{
						name: "xiaoming",
						age: 22
					},
					{
						name: "laowang",
						age: 44
					}
				]
			},
			methods: {

			},
			computed: {
				compClasses: function() {
					return {
						changeColor: this.changeC,
						changeLength: this.changeL
					};
				}
			}
		});
	</script>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的树懒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值