P6-条件判断登录案例

举报
brucexiaogui 发表于 2021/11/26 00:53:26 2021/11/26
【摘要】 P6-条件判断登录案例 1.用户登录案例概述 需求:用户点击登录类型切换按钮,可以切换用户名称与邮箱两种类型登录方式 2.登录类型切换案例 <!DOCTYPE html> &...

P6-条件判断登录案例

1.用户登录案例概述

需求:用户点击登录类型切换按钮,可以切换用户名称与邮箱两种类型登录方式

2.登录类型切换案例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  
<!-- 需求:点击按钮切换用户登录类型 -->
 <div id="app">
  <span v-if="isUser">
    <label for="username">用户账户</label>
    <input type="text" id="username" placeholder="用户账号">
  </span>

  <span v-else>
    <label for="email">用户邮箱</label>
    <input type="text" id="email" placeholder="用户邮箱">
  </span>

  <button v-on:click="isUser = !isUser">登录账户类型切换</button>
 </div> 
<script src="../js/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data: {
      isUser: true
    }
  })
</script>
</body>
</html>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

2.1.展示效果

在这里插入图片描述

2.用户登录小问题

问题:如果我们在有输入内容的情况下,切换了类型,我们会发现文字依然显示之前的输入的内容。
解答:这是因为Vue在进行DOM渲染时,出于性能考虑,会尽可能的复用已经存在的元素,而不是重新创建新的元素。
在上面的案例中,Vue内部会发现原来的input元素不再使用,直接作为else中的input来使用了。
解决方法:如果我们不希望Vue出现类似重复利用的问题,可以给对应的input添加key并且我们需要保证key的不同

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<!--   
 问题:如果我们在有输入内容的情况下,切换了类型,我们会发现文字依然显示之前的输入的内容。
 ----
 解答:这是因为Vue在进行DOM渲染时,出于性能考虑,会尽可能的复用已经存在的元素,而不是重新创建新的元素。
 在上面的案例中,Vue内部会发现原来的input元素不再使用,直接作为else中的input来使用了。
 ----
 解决方法:如果我们不希望Vue出现类似重复利用的问题,可以给对应的input添加key
 并且我们需要保证key的不同 
-->


 <div id="app">
   <span v-if="isUser">
     <label for="username">用户账户</label>
     <input type="text" id="username" placeholder="用户账号" key="username">
   </span>

   <span v-else>
     <label for="email">用户邮箱</label>
     <input type="text" id="email" placeholder="用户邮箱" key="email">
   </span>

   <button @click="isUser = !isUser">切换用户登录类型</button>
 </div> 
<script src="../js/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data: {
      isUser: true
    }
  })
</script>
</body>
</html>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/110442202

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。