学习笔记(03):Vue2.x从入门到实战-v-for指令 :解决模板循环问题

立即学习:https://edu.csdn.net/course/play/6823/135315?utm_source=blogtoedu

三、v-for指令:解决模板循环问题

v-for跟for循环性质一样

1、基本用法

<div id="app">
    <ul>
        <li v-for="item in items">
            {{item}}
        </li>
    </ul>
</div>
<script>
    var Demo=new Vue({
        el:'#app',
        data:{
        items:[34,56,11,2,67,98]//初始化一个数组
        }
)}

这是一个很基础的循环,在js里面先初始化一个item的数组,再用v-for将数组的数据循环出来。

2、排序

<div id="app">
    <ul>
        <li v-for="item in sortItems">
            {{item}}
        </li>
    </ul>
</div>
<script>
    var Demo=new Vue({
        el:'#app',
        data:{
        items:[34,56,11,2,67,98]//初始化一个数组
        },
        computed:{//在输出内容之前进行编程
            sortItems:function () {
                return this.items.sort(sortNumber);
            }
        }
    })
    function sortNumber(a,b) {
        return a-b;
    }

这里有computed:{}属性,它是在内容输出之前进行编程


     computed:{//在输出内容之前进行编程
            sortItems:function () {
                return this.items.sort(sortNumber);
            }
        }
  

我们在computed里新声明了一个对象sortItems,如果不重新声明会污染原来的items数据源,这是Vue不允许的,所以要重新声明一个对象。

3、对象循环输出

在HTML模版代码:

<ul>
        <li v-for="(student,index) in students">
            {{index+1}}:{{student.name}}-{{student.age}}
        </li>
    </ul>

V-for循环输出name和age属性,index是加的顺序索引

扫描二维码关注公众号,回复: 9400526 查看本文章

JS代码:

var Demo=new Vue({
        el:'#app',
        data:{
        students:[//初始化一个对象
            {name:'JAVA',age:20},
            {name:'Python',age:18},
            {name:'C++',age:30},
            {name:'PHP',age:13}
        ]
        }
)}

在js里面初始化一个students对象,用v-for在模板里面循环输出

数组对象方法排序

function SortByKey(array,key) {
        return array.sort(function (a,b) {
            var x=a[key];
            var y=b[key];
            return ((x<y)?-1:((x>y)?1:0));
        })
    }

在computed属性中调用SortByKey数组对象排序方法

computed:{//在输出内容之前进行编程
            sortStudent:function () {
                return SortByKey(this.students,'age');
            }
        }

发布了16 篇原创文章 · 获赞 0 · 访问量 124

猜你喜欢

转载自blog.csdn.net/weixin_45721211/article/details/104431164