8-Vue指令之列表渲染 V-for

1. v-for循环渲染标签
+ v-for 指令根据一组数组的选项列表进行渲染。
+ v-for 指令需要以“ item in items ”形式的特殊语法, items 是源数据数组并且 item 是数组元素迭代的别名。
+ 模板引擎都会提供循环的支持,基本的用法类似于foreach的用法。

 <div id="app">
        <table>
            <thead>
                <tr>
                    <th>姓名th>
                    <th>年龄th>
                    <th>地址th>
                tr>
            thead>

       <tbody>

                   <tr v-for = 'item in UserList'>
                        <td> {{ item.name }} td>
                        <td> {{ item.age }} td>
                        <td> {{ item.gender }}td>
                  tr>  
            tbody>
        table>

    var vm = new Vue({
       el: '#app',
       data: {
          UserList: [
              {'name':'meimei','age':18,'gender':'女'},
              {'name':'lilei','age':18,'gender':'男'},
              {'name':'sundy','age':18,'gender':'女'},
                    ]
                }
            })
  • 在 v-for 块中,我们拥有对父作用域属性的完全访问权限
  • v-for 还支持一个可选的第二个参数为当前项的索引
    <ul id="example">
        <li v-for = '(item,index) in items'>
        {{parentMessage}}--{{index}}--{{ item.message}}
        li>  
    ul>

      var example1 = new Vue({
            el: '#example',
            data: {
                parentMessage: 'parent',
                items: [
                    {message : 'foo'},
                    {message : 'var'},
                    {message : 'bnb'},
                ],   
            }
        })

你也可以用 of 替代 in 作为分隔符,因为它是最接近 JavaScript 迭代器的语法:

<div v-for="item of items">div>

2.Template 循环渲染多标签
上面的例子,我们演示的是 每次循环输出一个 tr 标签。如果我们希望每次循环生成多个标签呢?
Vue给我们提供了