vue学习第六章(条件显示)

简介: 欢迎来到我的博客!我是瑞雨溪,一名自学前端两年半的大一学生,擅长JavaScript与Vue,正向全栈进发。本篇介绍v-if、v-else、v-elseif及v-show的使用方法,附带实例演示。希望我的分享能帮到你,欢迎关注,持续更新中!🎉🎉🎉

🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏🙏🙏

@[toc]

1. v-if、v-else、v-elseif

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,但是在条件比较多的时候建议使用计算属性。

2. 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">
    

3. v-show

​ v-if 在首次渲染的时候,如果条件为假,什么也不操作,页面当作没有这些元素。当条件为真的时候,开始局部编译,动态的向DOM元素里面添加元素。当条件从真变为假的时候,开始局部编译,卸载这些元素,也就是删除。

​ v-show 不管条件是真还是假,第一次渲染的时候都会编译出来,也就是标签都会添加到DOM中。之后切换的时候,通过display: none;样式来显示隐藏元素。可以说只是改变css的样式,几乎不会影响什么性能。

<!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>

Hi👋,这里是瑞雨溪一个喜欢JavaScript和Vue的大学生,如果我的文章给你带来的帮助,欢迎您关注我,我会持续不断的更新更多优质文章.你的关注就是我的动力!!!🎉🎉🎉

相关文章
|
6月前
|
JavaScript 前端开发 API
vue3的知识点,要点,注意事项
vue3的知识点,要点,注意事项
50 1
|
6月前
|
JavaScript 前端开发 算法
|
11月前
【Vue2.0学习】—条件渲染(三十九)
【Vue2.0学习】—条件渲染(三十九)
|
11月前
|
缓存
【Vue2.0学习】—计算属性(三十四)
【Vue2.0学习】—计算属性(三十四)
|
6月前
|
JavaScript 前端开发
VUE基础知识:请解释Vue指令的概念,并给出一些常见的Vue指令。
VUE基础知识:请解释Vue指令的概念,并给出一些常见的Vue指令。
43 0
|
6月前
|
JavaScript 前端开发 C++
vue的条件渲染以及列表渲染的总结归纳加代码演示
vue的条件渲染以及列表渲染的总结归纳加代码演示
89 0
|
缓存 JavaScript 前端开发
【Vue】模板语法,插值、指令、过滤器、计算属性及监听属性(内含面试题及毕设等实用案例)上篇
Vue 的模板语法是一种用于在 HTML 中声明式地渲染 Vue 组件的语法。它基于 HTML,并通过特定的模板语法扩展了 HTML。Vue 使用了一种称为 “Mustache” 语法的模板插值来绑定数据到 HTML 元素上。在 Vue 的模板语法中,你可以使用双大括号({{}})将数据绑定到 HTML 元素上,这样数据的值会被动态地替换到相应的位置。 在 Vue 的模板语法中,你可以使用双大括号({{}})将数据绑定到 HTML 元素上,这样数据的值会被动态地替换到相应的位置。
|
JavaScript
详解——Vue3列展示功能及原理
详解——Vue3列展示功能及原理
230 0
《Vue3实战》 第五章 计算、监听属性
《Vue3实战》 第五章 计算、监听属性
41 0
|
前端开发
前端学习笔记202304学习笔记第十六天-vue3.0-循环渲染tag标签
前端学习笔记202304学习笔记第十六天-vue3.0-循环渲染tag标签
78 0