Vue之v-if之细节(018)

Vue之v-if之细节

完整代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="../js/vue.js"></script>
		<title>v-if</title>
	</head>
	<body>
		<div id="app">
			<span v-if="loginFlag"><label for="myUser">用户名登陆: </label><input type="text" placeholder="请输入用户名"	id="myUser" /></span>
			<span v-else><label for="myId">用户ID登陆: </label><input type="text" placeholder="请输入用户ID" id="myId" /></span>
			<button @click="loginFlag=!loginFlag">点我变换</button>
		</div>
		<script>
			let vm = new Vue({
				el: "#app",
				data: {
					loginFlag: true
				}
			})
		</script>
	</body>
</html>

效果如图:
点击切换自如。
在这里插入图片描述
在这里插入图片描述
我们再实验另外一各情况:
在这里插入图片描述
在文本框里输入内容后,再点击切换按扭,效果如下图:
在这里插入图片描述
文体框里内容没有清空,做如下处理可避免这种情况。

<span v-if="loginFlag"><label for="myUser">用户名登陆: </label><input type="text" placeholder="请输入用户名"	id="myUser" key="myUser"/></span>
			<span v-else><label for="myId">用户ID登陆: </label><input type="text" placeholder="请输入用户ID" id="myId"  key="myId"/></span>

在文本框属性里分别加上不同的key值。测试效果如图:
在这里插入图片描述
在这里插入图片描述
之所以产生这种情况,是因为Vue在转换虚拟DOM时,考虑到效率的原因,只对不同key值的DOM转换。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值