Vue中v-for更新检测的操作方法

 更新时间:2021年10月21日 08:53:55   作者:25氪  
v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。今天通过本文给大家介绍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(删除的个数)个数

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

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

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() 将数组反转

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()连接两个数组

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 索引值

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

覆盖方法

<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()方法

<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 backtop组件的实现完整代码

    vue backtop组件的实现完整代码

    这篇文章主要介绍了vue backtop组件的实现完整代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 浅谈Vue的加载顺序探讨

    浅谈Vue的加载顺序探讨

    本篇文章主要介绍了Vue的加载顺序探讨,详细的介绍了加载顺序以及如何判断所有的子组件加载完成。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • vue单页缓存方案分析及实现

    vue单页缓存方案分析及实现

    这篇文章主要介绍了vue单页缓存方案分析及实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 在 Vue 中控制表单输入方法详解

    在 Vue 中控制表单输入方法详解

    这篇文章主要介绍了在 Vue 中控制表单输入方法详解的相关资料,需要的朋友可以参考下
    2023-04-04
  • vue项目nginx二级域名配置方式

    vue项目nginx二级域名配置方式

    这篇文章主要介绍了vue项目nginx二级域名配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 解决element-ui的table表格控件表头与内容列不对齐问题

    解决element-ui的table表格控件表头与内容列不对齐问题

    这篇文章主要介绍了解决element-ui的table表格控件表头与内容列不对齐问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 如何为vuex实现带参数的 getter和state.commit

    如何为vuex实现带参数的 getter和state.commit

    这篇文章主要介绍了如何为vuex实现带参数的getter和state.commit,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Vue.js 父子组件通信的十种方式

    Vue.js 父子组件通信的十种方式

    最近一直在做 Vue项目代码层面上的优化,写文章是很easy的事情,今天小编给大家分享Vue.js 父子组件通信的十种方式,感兴趣的的朋友跟随小编一起看看吧
    2018-10-10
  • vue-router的hooks用法详解

    vue-router的hooks用法详解

    这篇文章主要介绍了vue-router的hooks用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • vue3封装自己的分页组件

    vue3封装自己的分页组件

    这篇文章主要为大家详细介绍了vue3封装自己的分页组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论