• Vue 数组响应


    响应渲染

    Vue中,被渲染的数据都是响应式的,即Vue实例中进行改变页面中也会跟着改变:

    vue响应

    <body>
    
    <div id="app">
        <p>{{count}}</p>
        <button @click="count++">+</button>
        <button @click="count--">-</button>
    </div>
    
    <script src="./vue.js"></script>
    <script>
        const app = new Vue({
            el:"#app",
            data:{
                count:0,
            },
        })
    </script>
    </body>
    

    数组响应

    但是如果数据源是一个数组的话,它的有一些操作并不是响应式的,如通过索引来操纵数组。

    如下所示,当我点击按钮使用索引修改元素后,数组中的元素确实发生了改变,但是页面的渲染效果并未发生改变,所以索引是未响应式的:

    Vue的数组响应

    <body>
    
    <div id="app">
        <ul>
            <li v-for="(value,index) in array" :key="value">{{index + 1}}-{{value}}</li>
        </ul>
        <button @click.once=func()>改变</button>
    </div>
    
    <script src='./vue.js'></script>
    <script>
        "use strict";
        const app = new Vue({
            el: "#app",
            data: {
                array: [
                    "A", "B", "C", "D",
                ]
            },
            methods: {
                func() {
                    this.array[0] = 'a';
                },
            },
        });
    </script>
    </body>
    

    变异方法

    下面这些方法都是经过Vue封装后的方法。使用与原生Js使用相同,但是他们是响应式的。

    方法描述
    push() 追加末尾,将元素压入数组尾部
    unshift 追加头部,将元素压入数组头部
    pop() 弹出末尾,将数组中最后一个元素弹出
    shift() 弹出头部,将数组中第一个元素弹出
    splice() 可以添加、删除、替换数组中的元素
    sort() 排序
    reverse() 翻转
  • 相关阅读:
    c#参数传递几点小结
    c#线程初探(二)
    c#线程初探(一)
    c#:浅克隆和深克隆,序列化和反序列化
    c#冒泡、快速、选择和插入排序算法的项目应用
    c#运算符几点小结
    文件操作(无代码)
    不仅仅C#缺点(永远未完)
    《道德经》程序员版第五章
    《道德经》程序员版第四章
  • 原文地址:https://www.cnblogs.com/plyc/p/14813710.html
Copyright © 2020-2023  润新知