• 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>
    
  • 相关阅读:
    Django对静态文件的处理——部署阶段
    使用Django来处理对于静态文件的请求
    Django1.7如何配置静态资源访问
    Spring WebSocket中403错误解决
    FastJSON JSONObject 字段排序 Feature.OrderedField
    国际化(i18n) 各国语言缩写
    【转】java.io.Closeable接口
    【转】spring bean 卸载
    This content should also be served over HTTPS
    Failed to close the ServletOutputStream connection cleanly, Broken pipe
  • 原文地址:https://www.cnblogs.com/jianjie/p/13527242.html
Copyright © 2020-2023  润新知