zoukankan      html  css  js  c++  java
  • vuejs里面v-if,v-show和v-for

    <div id='root'>
      <div v-if='show'>helle world</div>
      <button @click='handleClick'>toggle</button>
    </div>
    <script>
      new Vue({
        el:'#root',
        data:{
          show:true
        },
        methods:{
          handleClick:function(){
            this.show = !this.show;
          }
        }
      })
    </script>
    v-if,里面这个show是个变量,如果是true就是显示,如果是false就不显示,这里是移除了dom
    <div id='root'>
      <div v-show='show'>helle world</div>
      <button @click='handleClick'>toggle</button>
    </div>
    <script>
      new Vue({
        el:'#root',
        data:{
          show:true
        },
        methods:{
          handleClick:function(){
            this.show = !this.show;
          }
        }
      })
    </script>

    v-show,把v-show替换掉v-if,表现形式一样,但是和v-if不同的是,v-show只是将dom隐藏,显示,并没有移除dom,只是把display的样式变了

    如果显示的频率大,v-show比v-if要性能高一些,因为不会去销毁dom,和创建dom,如果显示的频率不是那么大,只要一次显示隐藏,那么v-if是更好的选择
     
    <div id='root'>
      <ul>
        <li v-for='item of list' :key='item'>{{item}}</li>
      </ul>
    </div>
    <script>
      new Vue({
        el:'#root',
        data:{
          list:[1,2,3]
        }
      })
    </script>
    v-for,当某个数据需要循环显示的时候,可以用v-for,这里需要注意加:key,可以提升性能,但是这个item变量要是唯一的,如果数组是[1,1,3],这个item就不能作为key值,需要将
    v-for='item of list'
    改成
    v-for='(item,index) of list',
    将索引index作为key值,这样是唯一的,但是index作为key值,在对列表排序等操作的时候可能存在问题
  • 相关阅读:
    【图片加载大小优化】
    img标签实现和背景图一样的显示效果——object-fit和object-position
    【ios bug解决】 输入框聚焦时光标不显示
    service worker 实现页面通信
    【获取url 问号后参数】防中文乱码
    js去掉url后某参数【函数封装】
    ES6字符串模板
    ES6扩展运算符和rest运算符
    ES6变量的解构赋值
    ES6新的声明方式,var let const三种声明方式的区别
  • 原文地址:https://www.cnblogs.com/wzndkj/p/9582273.html
Copyright © 2011-2022 走看看