vue.js 指令详解

指令的作用:当表达式的值改变时把特殊的行为应用到DOM上,指令的值限定为绑定表达式(表达式加过滤器(0或多个))

2.1.1 v-if

  v-if表达式值为false,对应元素从DOM中移除(相当于display:none,不占空间,最与display贴近的是下一个要介绍的元素),否则,对应元素的一个克隆将被重新插入到DOM中。

  

  <div id="example">
      <p v-if="greeting">show or hide</p>
    </div>
    <script >
      var exampleVM2=new Vue({
        el:"#example",
        data:{
          greeting:false
        }
      })
    </script>
页面中效果图为

<div id="example">

    </div>

  若多个元素使用v-if,可以用template标签包装起来。

  

  <div id="example" v-if="greeting">
      <p>show or hide</p>
    <p>show or hide</p>
    <p>show or hide</p>
    </div>
    <script >
      var exampleVM2=new Vue({
        el:"#example",
        data:{
          greeting:false
        }
      })
    </script>


2.1.2 v-show

  v-show值为FALSE,则自动加上display:none,v-show不支持template标签

  <div id="example">
      <p v-show="greeting">show or hide</p>
    </div>
    <script >
      var exampleVM2=new Vue({
        el:"#example",
        data:{
          greeting:false
        }
      })
    </script>
页面中效果图为
<div id="example">
     <p display="none>show or hide</p>
    </div>

v-if 与 v-show 若初始为FALSE,v-if不进行编译,v-show则进行编译,若需要频繁切换,使用v-show,若运行时条件不大可能改变,则用v-if

2.1.3 v-else

  v-else必须跟在v-if 或者v-show后面使用, 充当else功能。示例如下: 

<div id="example">
      <p v-if="greeting">show</p>
      <p v-else="greeting">hide</p>
    </div>

因为

<div id="example">
      <custom-component v-show="greeting">show</custom-component>
      <p v-show="!greeting">hide</p>
    </div>

posted @ 2017-04-04 22:04  绮梦璇玑  阅读(217)  评论(0编辑  收藏  举报