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. vmware克隆centos修改linux mac地址
  2. 中国数学界,无论怎样感谢哈代都不为过
  3. mysql embed_html中object和embed标签的区别
  4. 使用抽象等设计工具创建一个稳固的核心机制
  5. 【汇编语言】8086、x86-32和C语言【赋值语句 和 数组】的对比学习(王爽学习笔记:5.8段前缀的使用)
  6. 【1024】我的CSDN博客之路,感谢CSDN,我们一路同行!深度学习系列专栏回顾
  7. Python 对字典循环遍历的两种方式
  8. DE22 Using Laplace Transform to Solve ODEs with Discontinuous Inputs
  9. thinkphp mysql存储过程_MySql存储过程的创建与使用及在thinkphp中如何调用笔记
  10. 智能语音识别转文字字幕实时上屏直播系统
  11. libuv在cocos2d-x中的使用
  12. 并发编程学习之Callable接口
  13. 调整Poker 在Mac、win下通用键位,解决mac的复制粘贴问题
  14. 词法分析,语法分析,语义分析
  15. 所见即所得的 Markdown 编辑器
  16. WIN10 注册表添加启动项
  17. Unity 材质设置为tiling不能够重复的问题
  18. POJO 与javaBean(普通bean和EJB)
  19. win7系统在磁盘管理中进行U盘强制格式化
  20. win7下QQ2011隐藏后,鼠标移桌面边缘 QQ滑出来后又自动收进去了解决方法

热门文章

  1. python opencv3 检测人
  2. 剥开比原看代码07:比原节点收到“请求区块数据”的信息后如何应答?
  3. async await 同步方法调用异步方法死锁
  4. 模仿u-boot的makefile结构
  5. Unity3DGUI:Window
  6. Android(java)学习笔记27:TextView属性大全
  7. Silverlight 入门
  8. 【开始研究Community Server,转贴一点东西】Community Server资料收集
  9. linux基础知识——环境变量
  10. LeetCode LCP 06. 拿硬币