3vuev-for绑定

180 阅读3分钟

三种

  • 迭代数组,对象数组
  • 迭代对象
  • 迭代数字

普通数组

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>    
        <script src="./lib/vue.js"></script>
    </head>
    
    <body>
        <div id="app">
              <p>{{list[0]}}</p> 
              <p>{{list[1]}}</p>  
              <p>{{list[2]}}</p> 
              <p>{{list[3]}}</p> 
              <p>{{list[4]}}</p>
               <!--1.1循环普通数组  -->
              <!-- 循环每一项item list循环数组 -->
              <p v-for="item in list">{{item}}</p>
              <!-- 每一项的索引值 -->
              <!-- [].foreach((item,i)=>{}) -->
              <p v-for="(item,i) in list">索引值是:{{i}}值为:{{item}}</p 
        </div>
        <!--  -->
        <script>
            var vm = new Vue({
                el: "#app",
                data: {  
                    list:[1,2,3,4,5] 
                }
            })
        </script>
    </body>
    
    </html>

循环对象数组

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>    
            <script src="./lib/vue.js"></script>
        </head>
        
        <body>
            <div id="app"> 
                  <!--1.2循环对象数组 -->
                   <p v-for="(user,i) in list1">id是:{{user.id}}name是:{{user.name}} 索引是:{{i}}</p>
            </div>
            <!--  -->
            <script>
                var vm = new Vue({
                    el: "#app",
                    data: {   
                        list1:[{id:1,name:"lu"},{id:2,name:"li"},{id:3,name:"wang"},{id:4,name:"zhang"}]
                    }
                })
            </script>
        </body>
        
        </html>

循环对象

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>    
            <script src="./lib/vue.js"></script>
        </head>
        
        <body>
            <div id="app">
                  <p>{{list[0]}}</p> 
                  <p>{{list[1]}}</p>  
                  <p>{{list[2]}}</p> 
                  <p>{{list[3]}}</p> 
                  <p>{{list[4]}}</p>
                   <!--1.1循环普通数组  -->
                  <!-- 循环每一项item list循环数组 -->
                  <p v-for="item in list">{{item}}</p>
                  <!-- 每一项的索引值 -->
                  <!-- [].foreach((item,i)=>{}) -->
                  <p v-for="(item,i) in list">索引值是:{{i}}值为:{{item}}</p>
                  <!--1.2循环对象数组 -->
                  <p v-for="(user,i) in list1">id是:{{user.id}} name是:{{user.name}} 索引是:{{i}}</p>
                  <!--1.3 循环对象 键值对组成的value和key-->
                  <p v-for="(val ,key,i) in user">值是:{{val}} 键是{{key}} 索引是:{{i}}</p>
            </div>
            <!--  -->
            <script>
                var vm = new Vue({
                    el: "#app",
                    data: {  
                        list:[1,2,3,4,5],
                        list1:[{id:1,name:"lu"},{id:2,name:"li"},{id:3,name:"wang"},{id:4,name:"zhang"}],
                        user:{
                            id:1,
                            name:"wang",
                            gender:'男'
                        }
                    }
                })
            </script>
        </body>
        
        </html>

迭代数字

      <!-- 1.4  in 后面我们放数组,对象,对象数组,还可以放数字 注意使用v-for迭代数字从一开始-->
      <p v-for="count in 10">这是第{{count}}循环</p>

key的使用

  • 数据的唯一性,渲染的值唯一

  • 在组件钟使用v-for循环中,指定唯一的字符串或数值:key值

          <!DOCTYPE html>
          <html lang="en">
          
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <script src="./lib/vue.js"></script>
          </head>
          
          <body>
              <div id="app">
                  <label for="">Id:
                      <input type="text" v-model="id">
                  </label>
                  <label for="">name:
                      <input type="text" v-model="name">
                  </label>
                  <input type="button" value="添加" @click="add">
                  <!-- key 的值item是每个循环的唯一值,key属性不能用对象 ,用number或string-->
                  <p v-for="item in list" :key="item.id"><input type="checkbox">{{item.id}}item.id----{{item.name }}</p>
              </div>
              <!--  -->
              <script>
                  var vm = new Vue({
                      el: "#app",
                      data: {
                          list: [{ id: 1, name: "lu" }, { id: 2, name: "li" }, { id: 3, name: "wang" }, { id: 4, name: "zhang" }]
                      },
                      methods: {
                          add() {
                              // 1.1尾部
                              // this.list.push({ id: this.id, name: this.name })
                              // 1.2头部 
                              this.list.unshift({ id: this.id, name: this.name })
                              // checkbox的应用,没有指定key勾选就有问题
                          }
                      },
                  })
              </script>
          </body>
          
          </html>