zoukankan      html  css  js  c++  java
  • 512 循环遍历:v-for遍历数组、对象,组件的key属性,检测数组更新

    v-for遍历数组

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    
    <body>
      <div id="app">
        <!--1.在遍历的过程中, 没有使用索引值(下标值)-->
        <ul>
          <li v-for="item in names">{{item}}</li>
        </ul>
    
        <!--2.在遍历的过程中, 获取索引值-->
        <ul>
          <li v-for="(item, index) in names">
            {{index+1}}.{{item}}
          </li>
        </ul>
      </div>
    
      <script src="../js/vue.js"></script>
      <script>
        const app = new Vue({
          el: '#app',
          data: {
            names: ['why', 'kobe', 'james', 'curry']
          }
        })
      </script>
    
    </body>
    
    </html>
    

    v-for遍历对象

    v-for可以用户遍历对象。
    比如某个对象中存储着你的个人信息,我们希望以列表的形式显示出来。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    <div id="app">
      <!--1.在遍历对象的过程中, 如果只是获取一个值, 那么获取到的是value-->
      <ul>
        <li v-for="item in info">{{item}}</li>
      </ul>
    
    
      <!--2.获取key和value 格式: (value, key) -->
      <ul>
        <li v-for="(value, key) in info">{{value}}-{{key}}</li>
      </ul>
    
    
      <!--3.获取key和value和index 格式: (value, key, index) -->
      <ul>
        <li v-for="(value, key, index) in info">{{value}}-{{key}}-{{index}}</li>
      </ul>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: '#app',
        data: {
          info: {
            name: 'why',
            age: 18,
            height: 1.88
          }
        }
      })
    </script>
    
    </body>
    </html>
    

    组件的key属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    <div id="app">
      <ul>
        <!-- key的值最好不要写成index,因为元素的index可能会变化 -->
        <li v-for="item in letters" :key="item">{{item}}</li>
      </ul>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: '#app',
        data: {
          letters: ['A', 'B', 'C', 'D', 'E']
        }
      })
    </script>
    
    </body>
    </html>
    

    检测数组更新

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    <div id="app">
      <ul>
        <li v-for="item in letters">{{item}}</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: {
          btnClick() {
            // 1.push方法
            // this.letters.push('aaa')
            // this.letters.push('aaaa', 'bbbb', 'cccc')
    
            // 2.pop(): 删除数组中的最后一个元素
            // this.letters.pop();
    
            // 3.shift(): 删除数组中的第一个元素
            // this.letters.shift();
    
            // 4.unshift(): 在数组最前面添加元素
            // this.letters.unshift()
            // this.letters.unshift('aaa', 'bbb', 'ccc')
    
            // 5.splice作用: 删除元素/插入元素/替换元素
            // 删除元素: 第二个参数传入你要删除几个元素(如果没有传,就删除后面所有的元素)
            // 替换元素: 第二个参数, 表示我们要替换几个元素, 后面是用于替换前面的元素
            // 插入元素: 第二个参数, 传入0, 并且后面跟上要插入的元素
            // splice(start)
            // splice(start):
            this.letters.splice(1, 3, 'm', 'n', 'l', 'x')
            // this.letters.splice(1, 0, 'x', 'y', 'z')
    
            // 5.sort()
            // this.letters.sort()
    
            // 6.reverse()
            // this.letters.reverse()
    
            // 注意: 通过索引值修改数组中的元素,可以用splice
            // this.letters[0] = 'bbbbbb';
            this.letters.splice(0, 1, 'bbbbbb')
    
            // set(要修改的对象, 索引值, 修改后的值)
            Vue.set(this.letters, 0, 'bbbbbb')
          }
        }
      })
    
    
      // function sum(num1, num2) {
      //   return num1 + num2
      // }
      //
      // function sum(num1, num2, num3) {
      //   return num1 + num2 + num3
      // }
      // function sum(...num) {
      //   console.log(num);
      // }
      //
      // sum(20, 30, 40, 50, 601, 111, 122, 33)
    
    </script>
    
    </body>
    </html>
    

    作业的回顾和完成

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <style>
        .active {
          color: red;
        }
      </style>
    </head>
    <body>
    
    <div id="app">
      <ul>
        <li v-for="(item, index) in movies"
            :class="{active: currentIndex === index}"
            @click="liClick(index)">
          {{index}}.{{item}}
        </li>
    
        <!--<li :class="{active: 0===currentIndex}"></li>-->
        <!--<li :class="{active: 1===currentIndex}"></li>-->
        <!--<li :class="{active: 2===currentIndex}"></li>-->
        <!--<li :class="{active: 3===currentIndex}"></li>-->
      </ul>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: '#app',
        data: {
          movies: ['海王', '海贼王', '加勒比海盗', '海尔兄弟'],
          currentIndex: 0
        },
        methods: {
          liClick(index) {
            this.currentIndex = index
          }
        }
      })
    </script>
    
    </body>
    </html>
    
  • 相关阅读:
    关于《函数调用关键字》记忆恢复本
    进程一
    PE工具实现
    PE工具界面一
    PE各种操作
    汇编指令repne scas byte ptr es:[edi]
    Dialog
    按钮
    点和线的绘制一
    滚动条二
  • 原文地址:https://www.cnblogs.com/jianjie/p/13527242.html
Copyright © 2011-2022 走看看