上代码:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue6</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--<link rel="stylesheet" type="text/css" href="main.css"/>-->
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<!--v-if指令-->
<p v-if="seen>100">you can see me</p>
<p v-else-if="seen>50">or you can see me</p>
<p v-else-if="seen>10">you may see me</p>
<p v-else>well, you can only see me</p>
<!--注意:v-else、v-else-if必须跟在v-if或v-else-if后面--> <!--vue会尽可能高速的渲染元素,通常是复用已有元素-->
<!--下面代码中切换loginType不会清除已输入的内容,因为两个模板使用了相同的元素,<input> 不会被替换掉——仅仅是替换了它的 placeholder-->
<template v-if="loginType==='username' ">
<label for="um">username</label>
<input type="text" placeholder="enter username" id="um">
</template>
<template v-else>
<label for="email">email</label>
<input type="text" placeholder="enter email" id="email">
</template>
<button @click="ToggleLoginType">toggle login type</button> <br> <!--如果想表达“这两个元素是独立的,不要复用它们”,那么使用key-->
<!--这样每次切换时,输入框都会被重新渲染-->
<template v-if="loginType==='username' ">
<label for="um1">username</label>
<input type="text" placeholder="enter username" id="um1" key="username">
</template>
<template v-else>
<label for="email1">email</label>
<input type="text" placeholder="enter email" id="email1" key="email">
</template>
<!--注意label仍然被高效复用,因为它没有唯一值key--> <!--v-show使用-->
<p v-show="shown">this will be shown</p>
<!--v-show不支持template元素,也不支持v-else-->
</div> <script>
new Vue({
el: '#app',
data:{
seen: 11,
loginType: 'username',
shown: true
},
methods:{
ToggleLoginType:function(){
if(this.loginType==='username'){
this.loginType ='email';
}else{
this.loginType='username';
}
}
}
})
</script>
</body>
</html>

运行结果:

 这里再补充两点:

1.html中的<template>元素是一种保存客户端内容的机制,该内容在页面加载时不被渲染,但是运行时可以使用js实例化。

2.v-if与v-show的区别:

v-show只是简单的切换css属性display,元素始终被渲染被保存在DOM中;

v-show的切换开销相比v-if小,但是初始渲染开销比v-if大;

因此频繁切换,使用v-show;运行后很少改变,使用v-if。

参考:MDN <template>https://cn.vuejs.org/v2/guide/conditional.html

Vue学习5:条件渲染的更多相关文章

  1. Vue.js学习 Item7 -- 条件渲染与列表渲染

    v-if 在字符串模板中,如 Handlebars,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1 ...

  2. 关于vue.js中条件渲染的练习

    html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...

  3. Vue 样式绑定 && 条件渲染

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...

  4. Vue 基础自查——条件渲染和列表渲染

    v-if和v-show的区别是什么? v-if和v-for为什么不能一起用? v-for中的key有什么作用? 1 v-if 和 v-show 1.1 作用 都用来控制元素的显示和隐藏 1.2 控制元 ...

  5. 3-6 Vue中的条件渲染

    本次案例讲解:v-if,v-show,v-else,v-else-if和key值的相关用法!!! v-if指令: //通过一个(v-if)指令 ,可以结合js表达式的返回值,决定一个标签是否在页面上展 ...

  6. Vue指令之条件渲染

    1. v-show 根据表达式的真假值,切换元素的 display CSS属性.表达式为false时,p标签被赋予 style="display:none;" <p v-sh ...

  7. Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)

    文章目录 1.基本列表 1.1 基本知识 1.2 代码实例 1.3 测试效果 2.key的原理 2.1基本知识 2.2 代码实例 2.3 测试效果 2.4 原理图解 3.列表过滤 3.1 代码实例 3 ...

  8. vue学习笔记(五)条件渲染和列表渲染

    前言 在众多的编程语言中,我们的基础语法总是少不了一些专业语法,比如像定义变量,条件语句,for循环,数组,函数等等,vue.js这个优秀的前端框架中也有同样的语法,我们换一个名词,将条件语句改成专业 ...

  9. vue学习笔记(二)- 数据绑定、列表渲染、条件判断

    vue的数据绑定和列表渲染的造轮子 GitHub:八至 作者:狐狸家的鱼 双向数据绑定 Vue中数据的双向绑定-v-model 数据->页面 页面->数据 适用:input.select. ...

  10. Vue学习(四):条件渲染

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. How to change Eclipse loading image

    Eclipse IDE has many customize components, the splash welcome image (purple color loading image) is ...

  2. ECMA Script 6_行为重定义 Proxy

    行为重定义 Proxy 在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截 因此提供了一种机制,可以对外界的访问进行过滤和改写 Proxy 这个词的原意是代理,用在这里表示由它来 ...

  3. Node.js_express_搭建一个服务器

    原生 node 服务器 1. 导入 node.js 核心模块  / 自带模块 :   http const http = require('http'); // HTTP 库所具有的功能已经赋给了 h ...

  4. js根据服务端返回的时间倒计时

    使用服务端与本地的时间差进行计算 $(function(){ // 倒计时 var _ordertimer = null; var data =new Date(); var txt = $('.js ...

  5. Python基础 之for循环嵌套实例

    一.在控制台中输出以下字符样式: """ *****                       *****                       *****&qu ...

  6. javascript的数组之includes()

    includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false. var array1 = [1, 2, 3]; console.log(array ...

  7. solr 入门

    这个博客写的不错,很详细 https://blog.csdn.net/wzy18210825916/article/details/80946454

  8. windows安装虚拟机(VMware)

    一.安装虚拟机 1.打开安装包 2.接受协议 3.选择安装位置 4.按照提示下一步即可 5.完成安装 二.安装带有GUI的Redhat7系统 1.选择自定义安装 2.默认虚拟机硬件兼容 3.选择稍后安 ...

  9. 洛谷P3835 【模板】可持久化平衡树

    题目背景 本题为题目 普通平衡树 的可持久化加强版. 数据已经经过强化 感谢@Kelin 提供的一组hack数据 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作( ...

  10. wpf1

    emCombobox.Items[2].IsEnabled = false; 隐藏下拉框里面的一个item wpf 单例模式. [DllImport("user32", CharS ...