首先看下面代码
<!DOCTYPE html>
<html lang=en>
<head>
<meta charset="utf-8"/>
<title>Hello world</title>
<script src="vue.js"></script>
</head>
<body>
<div id="root">
<div v-if="show">
用户名: <input />
</div>
<div v-else>
邮箱:<input />
</div>
</div>
<script>
var vm = new Vue({
el:"#root",
data:{
show:true,
}
})
</script>
</body>
</html>
当我们再input中输入内容,然后切换show的值时,input标签做了复用,里面的内容不会清楚。解决方法,在标签中加一个key属性,表明这是唯一元素
<!-- 切换时vue会尝试复用页面上已经存在的dom,加上一个key 表示是页面上唯一的元素,就不会复用-->
<div v-if="show">
用户名: <input key="username"/>
</div>
<div v-else>
邮箱:<input key="mail"/>
</div>