Vue-列表渲染

列表渲染

列表功能是个相当重要的功能,经常会用到,一定要弄懂。

主要指令

  • v-for
  • :key(好像不用这个属性值也行,直接用“(item,aaa) in items”,这个“aaa”就能当做索引……)
    采用:item in items的形式访问,item表示当前项,items表示数据源。
    :key是一个标签的属性,key的值作为Vue遍历出来的标签的区分符。例如:如果遍历的是数组,而且key的值是index,那么遍历出来的每个标签的标记就是各个标签的index值。(好像没说清楚,可以再看看文档,在“列表渲染”这个条目下面。)

说明:

下面代码的“li”标签中item后面加了一个“aaa”的值,这个“aaa”表示遍历过程中的下标值,直接取这个“aaa”的值就可以得到遍历出来的标签的下标。
可能遍历对象的时候会用到:key值吧,因为对象的属性没有下标,只有属性名称,所以可以用item.id的形式获得唯一标识。

<!doctype html>
<html lang="zh-ch">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0,
          maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>条件渲染</title>
    <script src="../js/vue.js"></script>
</head>
<body>
<div id="demo">
    <h2>遍历数组</h2>
    <ul>
        <li v-for="(item,aaa) in items" :key="aaa">
            <p><b>{{item.msg}}</b><button @click="deleteItem(aaa)">攻击</button></p>
        </li>
    </ul>
</div>

<script type="text/javascript">
    new Vue({
        el:'#demo',
        data:{
            items:[
                {msg:'空军一号'},
                {msg:'空军二号'}
            ]
        },
        methods:{
            deleteItem(index){
                this.items.splice(index,1,{msg:'已被击毁'});
            }
        }
    });
</script>
</body>
</html>

注意:

  • in 可以用 of 来代替,即“item of items”。
  • v-for块可以直接访问父作用域的属性,如下,parentMessage是与items平级的属性,在v-for块中可以直接用双括号访问。
<ul id="example-2">
  <li v-for="(item, index) in items">
    {{ parentMessage }} - {{ index }} - {{ item.message }}
  </li>
</ul>
var example2 = new Vue({
  el: '#example-2',
  data: {
    parentMessage: 'Parent',
    items: [
      { message: 'Foo' },
      { message: 'Bar' }
    ]
  }
})

列表筛选/排序

等我用到了再写……

猜你喜欢

转载自blog.csdn.net/github_39312212/article/details/81083190