美文网首页工作生活
7. Vue v-for的使用

7. Vue v-for的使用

作者: 飞扬code | 来源:发表于2019-06-29 21:15 被阅读0次

v-for可以基于源数据多次渲染元素或模板块。这个指令必须用特定的语法alias in expression,为当前遍历的元素提供别名:

<div v-for="alias in expression"> {{ alias }}</div>

一般都是给数组或对象指定别名,除此之外还可以为索引值指定别名,对于对象还可以给value指定别名,常见的几种情形如下:

<div v-for="item in items">{{ item }}</div>
<div v-for="(item, index) in items">{{ item }} {{ index }}</div>
<div v-for="val in object"></div>
<div v-for="(val, key) in object"></div>
<div v-for="(val, key, index) in object"></div>

其中我们也可以把in换成of作为分隔符,因为它是最接近JavaScript迭代器的语法。
v-for的默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,你需要提供一个key的特殊属性:

<div v-for="itme in items" :key="item.id"> {{ item.text }}</div>

v-for`的一些使用场景。

操作array
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8" />
      <title>v-for遍历数组</title>
      <script src="js/vue.js"></script>
   </head>
   <body>
      <div id="app">
         <ul>
            <li v-for="(item) in arr ">{{item}}</li>
         </ul>
      </div>
   </body>
   <script>
      //view model\
      new Vue({
         el:"#app",
         data:{
            arr:[1,2,3,4,5]
         }
      });
   </script>
</html>
image.png

也可以取索引

<li v-for="(item,index) in arr ">{{item}}={{index}}</li>
image.png
操作对象
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8" />
      <title>v-for遍历对象</title>
      <script src="js/vue.js"></script>
   </head>
   <body>
      <div id="app">
         <ul>
            <li v-for="(key,value) in product ">{{value}}={{key}}</li>
         </ul>
      </div>
   </body>
   <script>
      //view model
      new Vue({
         el:"#app",
         data:{
            product:{
               id:1,
               name:"笔记本电脑",
               price:5000
            }
         }
      });
   </script>
</html>
image.png

操作对象数组

<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8" />
      <title>v-for遍历对象</title>
      <script src="js/vue.js"></script>
   </head>
   <body>
      <div id="app">
         <table border="1">
            <tr>
               <td>序号</td>
               <td>编号</td>
               <td>名称</td>
               <td>价格</td>
            </tr>
            <tr v-for="(product,index) in products">
               <td>{{index+1}}</td>
               <td>{{product.id}}</td>
               <td>{{product.name}}</td>
               <td>{{product.price}}</td>
            </tr>
         </table>
      </div>
   </body>
   <script>
      //view model
      new Vue({
         el: "#app",
         data: {
            products:[
               {id: 1, name: "笔记本电脑", price: 5000},
               {id: 2, name: "手机", price: 3000},
               {id: 3, name: "电视", price: 4000}
            ]
         }
      });
   </script>
</html>
image.png

相关文章

网友评论

    本文标题:7. Vue v-for的使用

    本文链接:https://www.haomeiwen.com/subject/mylmcctx.html