vue數(shù)據push后不能響應式更新的問題
vue數(shù)據push后不能響應式更新
未新屬性先開辟空間
if (res.data.length > 0) {
// var goodesMap = new Map()
var temp_goodsList = []
var trandeProductList = res.data
navItem.orderList.push({
goodsList: []
})
for (var i = 0; i < navItem.orderList.length; i++) {
for (var j = 0; j < trandeProductList.length; j++) {
if (navItem.orderList[i].tradeNo == trandeProductList[j].trandeForm
.tradeNo) {
temp_goodsList.push(trandeProductList[j])
}
}
navItem.orderList[i]["goodsList"] = temp_goodsList
// Object.assign(navItem.orderList[i], goodesMap.get("goodsList"));
// navItem.orderList[i].push(goodsList)
temp_goodsList = []
// goodesMap.clear()
}
// var s = that.navList[0].orderList[0].goodsList.length
// for (var i = 0; i < navItem.orderList.length; i++)
// {
// for (var j = 0; j < navItem.orderList[i].goodsList.length; j++) {
// console.log(navItem.orderList[i].goodsList[j].product.name)
// }
// }
}vue如何更新響應式數(shù)組與對象的內容
data: {
// 1.基礎數(shù)據類型,字符串 :this.xxx 直接修改數(shù)據
title:"vue",
// 2.數(shù)組類型 :使用7個變異函數(shù)修改
ingredients: ['meat', 'fruit', 'cookies'],
// 2-2:數(shù)組內容為對象
// ①:如果是更改對象里的某一元素則 this.persons[1].xxx
// ②:如果是修改整個對象內容 也是使用7個變異函數(shù)修改
persons: [
{ name: 'Vane', age: 38, color: 'red' },
{ name: 'Fang', age: 27, color: 'blue' },
],
// 3.對象類型
// ①:如果修改原有響應式數(shù)據,則 userInfo.xxx修改
// ②:如果是新增響應式數(shù)據,則 this.$set(this.userInfo,'xxx','x')
userInfo:{
name:"wangwu",
age:19
}
},1-更新基礎數(shù)據類型(字符串)
this.title="vue2" 直接修改數(shù)據
2-更新數(shù)組類型
不可以使用this.xxx直接修改數(shù)據
使用7個變異函數(shù)修改 pop,push,shift,unshift,splice,sort,reverse,它們是已經在vue當中進行了二次改造
this.ingredients[1]="soup" // 失敗 this.ingredients.splice(1,1,"soup") // 成功
2-2:數(shù)組內容為對象
1.修改對象中的某一屬性:
this.persons[1].name="lisi"
2.用變異函數(shù)整體修改:
this.persons.splice(1,1,{name: 'zhangsan', age: 20, color: 'green'})3.直接進行數(shù)組元素的整體替換,是不行的
this.persons[1]={ name: 'zhangsan', age: 20, color: 'green' }3-對象類型
1.如果修改原有響應式數(shù)據,則 userInfo.xxx修改
2.如果是新增響應式數(shù)據,則 this.$set(this.userInfo,'xxx','x')。
this.$set:第一個參數(shù)就是目標對象,第二個參數(shù)是對象的屬性,第三個參數(shù)是對象的屬性值
注意:
- this.userInfo.sex="男" 使用this.xxx直接增加的數(shù)據,不是響應式數(shù)據,不會出現(xiàn)在vue調試工具里。
- 他僅僅是普通的屬性節(jié)點,并不是響應式的屬性節(jié)點
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue-cli3 配置開發(fā)與測試環(huán)境詳解
這篇文章主要介紹了vue-cli3 配置開發(fā)與測試環(huán)境詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
Vue中登錄驗證成功后保存token,并每次請求攜帶并驗證token操作
這篇文章主要介紹了Vue中登錄驗證成功后保存token,并每次請求攜帶并驗證token操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Vue綁定class和綁定內聯(lián)樣式的實現(xiàn)方法
本文主要介紹了Vue綁定class和綁定內聯(lián)樣式的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11

