我是靠谱客的博主 踏实香氛,这篇文章主要介绍Vue中v-for更新检测的操作方法,现在分享给大家,希望可以做个参考。

口诀:

  • 数组变更方法,就会导致 v-for 更新,页面更新
  • 数组非变更方法:返回新数组,就不会导致 v-for 更新,更新值检测不到可采用覆盖或者 this.$set()

数组变更方法如下:

1. arr.push()从后面添加元素

arr.push(5)

2. arr.pop()从后面删除元素,只能是一个

arr.pop()

3. arr.shift()从前面删除元素,只能删除一个

arr.shift()

4. arr.unshift()从前面添加元素,返回值时添加完后数组长度

arr.unshift(8)

5. arr.splice(i,n)删除从 i (索引值)开始之后删除的 N(删除的个数)个数

复制代码
1
2
3
let arr = [1,2,3,4,5] console.log(arr.splice(2,2)) //[3,4] console.log(arr) // [1,2,5]

6. arr.sort()将数组进行排序,返回值排好的数组

复制代码
1
2
3
4
5
6
let arr = [2,10,6,1,4,22,3] console.log(arr.sort()) // [1, 10, 2, 22, 3, 4, 6] let arr1 = arr.sort((a, b) =>a - b) console.log(arr1) // [1, 2, 3, 4, 6, 10, 22] let arr2 = arr.sort((a, b) =>b-a) console.log(arr2) // [22, 10, 6, 4, 3, 2, 1]

7. arr.reverse() 将数组反转

复制代码
1
2
3
let arr = [1,2,3,4,5] console.log(arr.reverse()) // [5,4,3,2,1] console.log(arr) // [5,4,3,2,1]

数组非变更方法如下:

1. arr.concat()连接两个数组

复制代码
1
2
3
let arr = [1,2,3,4,5] console.log(arr.concat([1,2])) // [1,2,3,4,5,1,2] console.log(arr) // [1,2,3,4,5]

2. arr.slice(start,end)切去索引 start 到 end 索引值,不包含 start 索引值

复制代码
1
2
let arr = [1,2,3,4,5] console.log(arr.slice(1,3)) // [2,3]

覆盖方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<li v-for="(val, index) in arr" :key="index"> {{ val }} </li> <button @click="sliceBtn">截取前3个</button> sliceBtn(){ // 2. 数组slice方法不会造成v-for更新 // slice不会改变原始数组 // this.arr.slice(0, 3) // 解决v-for更新 - 覆盖原始数组 let newArr = this.arr.slice(0, 3) this.arr = newArr },

this.$set()方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<li v-for="(val, index) in arr" :key="index"> {{ val }} </li> <button @click="sliceBtn">更新下标0的值</button> sliceBtn(){ // 更新某个值时,v-for是检测不到的 // this.arr[0] = 1000 // 解决- this.$set() // 参数1:更新目标结构 // 参数2:更新位置 // 参数3:更新值 let newArr = this.arr.slice(0, 3) this.arr = newArr },

到此这篇关于Vue中v-for更新检测的文章就介绍到这了,更多相关vue v-for更新检测内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!

最后

以上就是踏实香氛最近收集整理的关于Vue中v-for更新检测的操作方法的全部内容,更多相关Vue中v-for更新检测内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(166)

评论列表共有 0 条评论

立即
投稿
返回
顶部