zoukankan      html  css  js  c++  java
  • VUE 数组更新

    1、数据方法分类:

    (1)原数组改变

    push
    pop
    unshift
    shift
    reverse
    sort
    splice

    (2)原数组未变,生成新数组

    slice
    concat
    filter

    map

    对于使原数组变化的方法,可以直接更新视图。

    对于原数组未变的方法,可以使用新数组替换原来的数组,以使视图发生变化。

    示例代码:

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>vue示例</title>
        </head>
    
        <body>
            <div id="app">
                <ul>
                    <template v-for="book in books">
                        <li>书名:{{book.name}}</li>
                        <li>作者:{{book.author}}</li>
                    </template>
                </ul>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                var app = new Vue({
                    el: '#app',
                    data: {
                        books: [{
                                name: 'vuejs',
                                author: 'a'
                            },
                            {
                                name: 'js高级',
                                author: 'b'
                            },
                            {
                                name: 'java',
                                author: 'c'
                            }
                        ]
                    }
                });
                //直接可以使得视图改变
                //app.books.push({name: 'c++',author: 'd'});
                //需要更新原数组
                app.books = app.books.concat([{name: 'c++',author: 'd'}]);
                
            </script>
        </body>
    
    </html>

    注意:以下不会触发视图的更新。

    (1)通过索引直接设置项。

    (2)修改数组长度,app.books.length=1

    若不想改变原数组,可以使用计算属性来过滤数组,如:

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>vue示例</title>
        </head>
    
        <body>
            <div id="app">
                <ul>
                    <template v-for="book in filterBooks">
                        <li>书名:{{book.name}}</li>
                        <li>作者:{{book.author}}</li>
                    </template>
                </ul>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                var app = new Vue({
                    el: '#app',
                    data: {
                        books: [{
                                name: 'vuejs',
                                author: 'a'
                            },
                            {
                                name: 'js高级111',
                                author: 'b'
                            },
                            {
                                name: 'java33333',
                                author: 'c'
                            }
                        ]
                    },
                    computed:{
                        filterBooks:function(){
                            return this.books.sort(function(a,b){
                                return a.name.length>b.name.length?1:-1
                            })
                        }
                    }
                });
                
            </script>
        </body>
    
    </html>

    上述代码是按照书的名字由短到长排序。这个不会修改原数组。

  • 相关阅读:
    python易错点2
    python易错点1
    Spring:注解组件注册
    KubeSphere建立多租户系统
    Centos7.7下KubeSphere最小化安装和定制化配置安装
    安装create-react-app
    查看react版本等信息
    react自动生成React组件命令
    sqlserver 随机数
    Error while downloading 'http://java.sun.com/xml/ns/javaee/javaee_web_services_client_1_2.xsd'
  • 原文地址:https://www.cnblogs.com/mengfangui/p/8043834.html
Copyright © 2011-2022 走看看