v-if、v-eles、v-else-if

​ v-if用于条件判断,判断Dom元素是否显示。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><div id="app"><h2 v-if="isFlag">isFlag为true显示这个</h2><h2 v-show="isShow">isShow为true是显示这个</h2><div v-if="age<18">小于18岁未成年</div><div v-else-if="age<60">大于18岁小于60岁正值壮年</div><div v-else="">大于60岁,暮年</div></div><script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script><script>const app = new Vue({el:"#app",data:{isFlag:true,isShow:false,age:66}})</script>
</body>
</html>

  1. 单独使用v-if,变量为布尔值,为true才渲染Dom
  2. v-show的变量也是布尔值,为true才显示内容,类似css的display
  3. v-if、v-else、v-else-if联合使用相当于if、elseif、else,但是在条件比较多的时候建议使用计算属性。

v-if的demo

​ 在登录网站是经常可以选择使用账户名或者邮箱登录的切换按钮。要求点击按钮切换登录方式。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><div id="app"><span v-if="isUser"><label for="username">用户账号</label><input type="text" id="username" placeholder="请输入用户名" ></span><span v-else="isUser"><label for="email">用户邮箱</label><input type="text" id="email" placeholder="请输入用户邮箱" ></span><button @click="isUser=!isUser">切换类型</button></div><script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script><script>const app = new Vue({el:"#app",data:{isUser:true}})</script>
</body>
</html>

​ 使用v-ifv-else选择渲染指定的Dom,点击按钮对isUser变量取反。

这里有个小问题,如果已经输入了账号了,此时想切换到邮箱输入,输入框未自己清空。

​ 这里需要了解一下vue底层操作,此时input输入框值被复用了。

  1. vue在进行DOM渲染是,处于性能考虑,会复用已经存在的元素,而不是每次都创建新的DOM元素。
  2. 在上面demo中,Vue内部发现原来的input元素不再使用,所以直接将其映射对应虚拟DOM,用来复用。
  3. 如果不希望出现类似复用问题,可以给对应的dom元素加上key值,并保证key不同。
    <input type="text" id="username" placeholder="请输入用户名" key="username"> <input type="text" id="email" placeholder="请输入用户邮箱" key="email">

v-show

​ v-if看似和v-show实现一样的效果,但是内部v-show只是用css将操作的元素隐藏显示,而v-if是新增和删除元素。v-show只是操作元素的style属性display,都没会被创建。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><div id="app"><h2 v-show="isFlag">v-show只是操作元素的style属性display,都没会被创建</h2><h2 v-if="isFlag">v-if是新增和删除dom元素</h2></div><script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script><script>const app = new Vue({el:"#app",data:{isFlag:true}})</script>
</body>
</html>

vue if判断_VUE学习记录2相关推荐

  1. vue @click 多个事件_VUE学习记录3

    v-on的基本使用 ​ 在前面的计数器案例中使用了v-on:click监听单击事件.这里在回顾一下: <!DOCTYPE html> <html lang="en" ...

  2. vue if判断_vue循环判断

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>条件与 ...

  3. vue mianjs 引用css_vue 学习记录八——webpack中常见的配置项

    在web开发中,我们得使用到js(es6).css.html等技术,需要对资源文件管理,例如图片,同时还需要对性能.热加载等进行处理:这些功能都是可以在webpack中进行配置管理的,下面具体介绍说明 ...

  4. vue变量传值_VUE 学习——父组件传值给子组件

    在我们编写前端代码时,经常遇到的一种场景,子组件需要使用父组件的值,这种情况下,我们可以使用props帮助我们进行父子组件间的通信.这里我们先模拟一个场景,展示如何使用. 场景:在父组件修改值,传递给 ...

  5. vue 倒计时 插件_Vue学习笔记-倒计时插件

    安装 1.cnpm/npm npm install vue2-countdown --save 2.Git 下载源码 git clone https://github.com/cgygd/vue2-c ...

  6. vue 日期判断_vue中根据时间戳判断对应的时间(今天 昨天 前天)

    根据时间戳 来显示对应的时间段 本文是根据vue缩写,但是原理都是想通的 根据一个时间戳,然后来显示对应的时间段.如果为今天,则显示对应的time,如果为昨天,则显示为昨天,如果为前天,则显示为前天. ...

  7. 【VUE】学习记录一

    [VUE]学习记录 学习视频为:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通 1.查询vue知识点: https://v2.cn.vuejs.org/ 2. 下载和引入 2.1 下 ...

  8. vue 拷贝 数组_vue源码中值得学习的方法

    最近在深入研究vue源码,把学习过程中,看到的一些好玩的的函数方法收集起来做分享,希望对大家对深入学习js有所帮助.如果大家都能一眼看懂这些函数,说明技术还是不错的哦. 1. 数据类型判断 Objec ...

  9. vue学习记录-05 事件监听

    vue学习记录-05 事件监听 这篇文章是根据codewhy老师在b站的视频进行的学习记录 文章目录 vue学习记录-05 事件监听 一.v-on的基本使用 二.v-on的参数问题 1.方法不需要参数 ...

最新文章

  1. Vue实战狗尾草博客后台管理系统
  2. sigaction 函数,sigemptyset()函数,fcntl()函数,isatty()函数
  3. 【顾连科普】健康生活的10个小常识,请收下
  4. 为什么直播时要用CDN?
  5. 使用OData API批量删除Marketing Cloud里的contact
  6. asp.net 跨页面传值(一)
  7. 教师计算机网络培训工作总结,教师培训工作的自我总结
  8. 保姆级!!前端必会Taro入门级教学!!
  9. mac nginx 非brew安装_Nginx服务器环境手动安装Discuz! Q非详细教程
  10. 去除Windows-XP系统下的关机功能
  11. “小而美”背后的大道理:WebRAY崛起的深层次原因
  12. 计算机类综述论文范文,综述的写法(计算机类论文综述的写法)
  13. 开源人物之九:赖霖枫
  14. 生命即便卑微如尘,即便困顿,依然是美景。
  15. 【Atheros】minstrel速率调整算法源码走读
  16. 【JDK源码】集合源码目录,冲冲冲
  17. linux防火墙黑白名单,iptables详解(9):iptables的黑白名单机制
  18. Excel如何隔行插入图片?
  19. Caution: request is not finished yet
  20. Mac:Permission denied XXX

热门文章

  1. PowerDesigner生成sql语句时自动导出注释
  2. web面试常见问题补充
  3. ubuntu下搭建android开发环境(转载)
  4. 吹毛求疵C#(1)明确赋值检查缺陷
  5. 机器学习分类与性能度量
  6. 第一章 计算机系统概述 1.1 计算机发展史 [计算机组成原理笔记]
  7. java语言_java语言学习
  8. c++卸载工具_win7系统如何卸载office2007兼容包
  9. 北京联合大学计算机学院在哪个校区,北京联合大学各校区联系地址大全
  10. 西门子plm_好事连连 西门子PLM新品多项合作并举