学习Vue.js Day4

142 阅读2分钟

v-show 和 v-if

当条件为false,

v-if会将DOM中的节点删除

v-show只是给元素加了一个元素样式:display:none

如果切换频繁使用 v-show

当只有一次切换使用v-if

v-for 循环遍历

<ul>
<!--    遍历过程中没有使用下标值-->
    <li v-for="item in movies">{{item}}</li>
<!--    在遍历的过程中获取下标值-->
    <li v-for="(item, index) in movies">{{index+1}} {{item}}</li>
  </ul>
  <ul>
<!--    在遍历对象过程中,如果只是获取一个值,那么获取的时value-->
    <li v-for="item in peoples">{{item}}</li>
<!--    如何获取key和value (value, key , index)-->
    <li v-for="(value, key) in peoples">{{value}}-{{key}}</li>
  </ul>
      movies:['海王', '天线宝宝', '海贼王', '火影忍者'],
      peoples:{
        name:'why',
        age: 18,
        height: 1.88
      },

数组的那些方法能实现响应式那些不能

<div id="app">
  <ul>
<!--    加key性能更高-->
    <li v-for="letter in letters">{{letter}}</li>
  </ul>
  <button @click="btnClick">按钮</button>
</div>
<script src="../js/vue.js"></script>
<script>
  const app = new Vue({
    el:'#app',
    data:{
      letters:['A','B','C','D']
    },
    methods:{
      sum(...sum){
        // ...sum可以传入多个元素,可变参数, 以逗号形式传('a', 'b', 'c')
      },
      btnClick(){
        // 1.数组的响应式方法
        // push方法在数组最后添加元素可以加多个
         this.letters.push('E')
        // pop方法删除数组最后元素
         this.letters.pop()
        // shift方法删除数组第一个元素
         this.letters.shift()
        // unshift方法在数组最前面添加元素可以加多个
         this.letters.unshift('F', 'G')
        // splice方法 (start, length, content )
        // start 起始位置
        // length : 表示删除几个元素 若不写删除之后所有
        // 若是 0则表示添加
        // content :替换的内容
         this.letters.splice()
        // sort方法 排序
         this.letters.sort()
        // reverse方法
        // this.letters.reverse()
        //修改数组
         Vue.set(this.letters,0,'bbbb')
        // 2.不是响应式
        // 通过索引值修改数组的元素,不能做到
         this.letters[0] = 'a'
      }
    }
  })
</script>