首页 > 编程语言 > 详细

VUE——数组更新

时间:2021-03-17 10:00:04      阅读:28      评论:0      收藏:0      [点我收藏+]

前言:

Vue的核心是数据与视图的双向绑定,当我名修改数组时,vue会检测到数据变化,所以用v-for渲染的视图也会立即更新。

Vue包含了一组观察数组变异的方法,使用它们改变数组也会触发视图更新:

  push()、pop()、shift()、unshift()、splice()、sort()、reverse()——》会改变原始数组

  filter()、concat()、slice()——》不会改变原始数组

 示例:

    <div id="app">
        <ul>
            <template v-for="(item,idx) in books">
                <li>书名:{{item.name}}</li>
                <li>作者:{{item.autor}}</li>
            </template>
        </ul>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el: ‘#app‘,
            data: {
                books:[
                    {
                        name:‘《Vue.js实战》‘,
                        autor:‘粱澈‘
                    },
                    {
                        name:‘《 JavaScript 言精粹》‘,
                        autor:‘Douglas Crockford‘
                    },
                    {
                        name:‘《 JavaScript 高级程序设计》‘,
                        autor:‘Nicholas C.Zakas‘
                    }
                ]
            }
        })
        app.books=app.books.filter(function(item){
            return item.name.match(/JavaScript/); //match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
        })
    </script>

  渲染的结果中,第一项会被过滤掉

过滤与排序

当你不想改变原数组,想通过一个数组的副本来做过滤或排序显示时,可以使用计算属性来返回过滤或排序后的数组

    <div id="app">
        <ul>
            <template v-for="(item,idx) in sortBooks">
                <li>书名:{{item.name}}</li>
                <li>作者:{{item.autor}}</li>
            </template>
        </ul>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el: ‘#app‘,
            data: {
                books:[
                    {
                        name:‘《Vue.js实战》‘,
                        autor:‘粱澈‘
                    },
                    {
                        name:‘《 JavaScript 言精粹》‘,
                        autor:‘Douglas Crockford‘
                    },
                    {
                        name:‘《 JavaScript 高级程序设计》‘,
                        autor:‘Nicholas C.Zakas‘
                    }
                ]
            },
            computed:{
                filterBooks:function(){ //过滤掉书名不含JavaScript
                    return this.books.filter(item => item.name.match(/JavaScript/))
                },
                sortBooks:function(){//根据书名的长度排序
                    return this.books.sort((a,b)=> a.name.length<b.name.length)
                }
            }
        })
    </script>

VUE——数组更新

原文:https://www.cnblogs.com/HeLingping/p/14546976.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!