<div id="app"> <!--template标签是vue提供的给我们的没有实际意义,用来包裹元素用的--> <!--v-show不支持template--> <!--<template v-if="true">--> <!--<div>1</div>--> <!--<div>21</div>--> <!--<div>3</div>--> <!--</template>--> <!--<div v-else>555</div>--> <button @click="cut=!cut">点击</button> <!--默认情况下切换dom的结构时会被复用,如果不需要复用 需要加key--> <template v-if="cut"> <label>注册</label> <input type="text" key="1"> </template> <template v-else> <label>登录</label> <input type="text" key="2"> </template> </div>
<script> let vm=new Vue ({ el:"#app", data:{ cut:true } }) </script>
用法:
根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是<template>
,将提出它的内容作为条件块。
当条件变化时该指令触发过渡效果。
在字符串模板中,比如 Handlebars,我们得像这样写一个条件块:
<!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1> {{/if}} 在 Vue 中,我们使用 v-if 指令实现同样的功能: <h1 v-if="ok">Yes</h1> 也可以用 v-else 添加一个“else 块”: <h1 v-if="ok">Yes</h1> <h1 v-else>No</h1> 在 <template> 元素上使用 v-if 条件渲染分组 因为 v-if 是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 <template> 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 <template> 元素。 <template v-if="ok"> <h1>Title</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> </template>
案例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="vue.js"></script> </head> <body> <div id="id"> <span v-if="flag"> 如果flag为true则显示,false不显示! </span> </div> </body> <script> var vm = new Vue({ el:"#id", data:{ flag:true } }) </script> </html>
转载请注明: Vue教程中文网 - 打造国内领先的vue学习网站-vue视频,vue教程,vue学习,vue培训 » vue中的v-if方法详解