vue v-if 不显示和显示错位问题


转载链接:https://blog.csdn.net/wang729506596/java/article/details/81014739

 

一、若v-if切换的是逻辑复杂的控件时,切换时不重新渲染极易出问题
需要给要重新渲染的控件添加一个key属性,来唯一标识该控件,被key标识后会重新渲染。实例如下

<template v-if="type=== 'username'" key="1"> 
<label>用户名</label> 
<input placeholder="输入用户名"> 
</template> 
<template v-else key="2"> 
<label>邮箱</label> 
<input placeholder="输入邮箱"> 
</template>

 

二、v-if和v-else或v-else-if之间不能添加其他元素。   
以下是错误事例
<span v-if="type==1">错误示范</span>
<span>哈哈哈</span>
<p v-else>嘿嘿嘿</p>

以下是正确实例
<span v-if="type==1">正确示范</span>
<p v-else>嘿嘿嘿</p>
<span>哈哈哈</span>
v-if 为同一类型组件(或同一模板的dom树)来做显示和隐藏时,最好在最外层添加key属性来设定唯一标识,否则容易出问题
<template v-if="type=== 'username'">
<label>用户名</label>
<input placeholder="输入用户名">
</template>
<template v-else>
<label>邮箱</label>
<input placeholder="输入邮箱">
</template>
以上代码切换时,仅仅切换placeholder,而不会重新渲染,因为他用了相同的模板

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM