切换小问题

有时候,我们登录的时候会有多个选项,比如切换成手机号邮箱登录,但是当我们点击切换后,改变了样式,input里面的值却没有改变过来

<span v-if="active">
  <label>手机号</label>
  <input type="" name="" id="name" />
</span>
<span v-else>
  <label>邮箱</label>
  <input type="" name="" id="name" />
</span>
<button type="button" @click="change">切换账号</button>

这个原因是,在vue中,会有一个虚拟dom,为了提高效率,当点击切换的时候,虚拟dom会判断一下是不是之前的结构,如果是,就用之前的结构,所以input里面的值没有改变

但是我们要解决这个问题,那么我们就在input里面加一个标识,给他加一个key=“”,当两个名字不一样的时候,就会清除之前的结构。

<span v-if="active">
  <label>手机号</label>
  <input type="" name="" id="name" key="a" />
</span>
<span v-else>
  <label>邮箱</label>
  <input type="" name="" id="name" key="b"/>
</span>
<button type="button" @click="change">切换账号</button>

posted @ 2020-08-13 18:56  颿華正茂  阅读(65)  评论(0)    收藏  举报