v-if与v-show的用法与区别

标签: vue


  • vue中显隐方法常用两种,v-show和v-if,但这两种是有区别的。
  • 实现本质方法区别
    • vue-show本质就是标签display设置为none,控制隐藏
    • vue-if是动态的向DOM树内添加或者删除DOM元素
  • 编译的区别
    • v-show其实就是在控制css
    • v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件
  • 编译的条件
    • v-show都会编译,初始值为false,只是将display设为none,但它也编译了
    • v-if初始值为false,就不会编译了
  • 性能
    • v-show只编译一次,后面其实就是控制css,而v-if不停的销毁和创建,故v-show性能更好一点。
  • 用法
    • v-if更灵活,举个例子
//这个里面只会显示数组角标大于等于2的内容
  <li v-for="(item, index) in scene" v-if="index <= 2" @click="openScene(item, item.pid)">
      <span>{{ item.name }}</span>
  </li>
 //这个上面为true的内容,下面为false的内容(当然这个也可以用v-show实现的)
 <li v-for="(item, index) in scene" v-if="item.share" @click="openScene(item, item.pid)">
     <span>{{ item.share }}</span>
 </li>
 <li v-else>
      <span>{{ item.share }}</span>
 </li>

如果你的页面不想让其他程序员看到就用v-if,它不会在页面中显示。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容