Vue 将被侦听的数组的变更方法进行了包裹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 将被侦听的数组的变更方法进行了包裹相关的知识,希望对你有一定的参考价值。

参考技术A Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。这些被包裹过的方法包括:

push(xxx) //插入数组最后一个元素

pop() //pop() 方法用于删除并返回数组的最后一个元素。

返回值

arrayObject 的最后一个元素。

说明

pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

shift()  //shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

返回值

数组原来的第一个元素的值。

说明

如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。

unshift(xxx, yyy) //unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

返回值

arrayObject 的新长度。

说明

unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。

请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。

splice()

语法

arrayObject.splice(index,howmany,item1,.....,itemX)

参数描述

index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, ..., itemX可选。向数组添加的新项目。

返回值

类型描述

Array包含被删除项目的新数组,如果有的话。

说明

splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

sort()  //方法用于对数组的元素进行排序。

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

reverse() //方法用于颠倒数组中元素的顺序。

提示和注释

注释:该方法会改变原来的数组,而不会创建新的数组。

以上是关于Vue 将被侦听的数组的变更方法进行了包裹的主要内容,如果未能解决你的问题,请参考以下文章

Vue 之 push、pop、shift、unshift、splice、sort、reverse

Vue3使用reactive包裹数组赋值

由浅入深读透vue源码:diff算法

由浅入深读透vue源码:diff算法

关于vue无法侦听数组及对象属性的变化的解决方案

Vue的计算属性和方法和侦听器