vue如何給數(shù)組添加新對(duì)象并賦值
給數(shù)組添加新對(duì)象并賦值
方法一
適用于數(shù)組就只有一組
listData: [{name:"張三",age:18}],
//直接添加對(duì)象
listData.sex="男"方法二
適用于數(shù)組中有多組信息
listData:[],
list:[{"張三","李四"}]
//比如想把另外一個(gè)數(shù)組中編列出來(lái)的值加入到這個(gè)數(shù)組中
? ?for (let index = 0; index < this.listlist.length; index++) {
? ? ? ? ? this.listData.push({ name: "" });
? ? ? ? ? this.listData[index].name= this.list[index];
? ? ? ? }數(shù)組賦值踩過(guò)的坑及解決
最近需要在Vue當(dāng)中完成動(dòng)態(tài)賦值數(shù)組操作,從服務(wù)器拿到數(shù)據(jù)后,刷新數(shù)組中的數(shù)據(jù),但是發(fā)現(xiàn)無(wú)論使用什么方法都不行,通過(guò)打log,發(fā)現(xiàn)數(shù)據(jù)在這里就無(wú)法向下執(zhí)行,而且也沒(méi)有報(bào)任何的異常,最終問(wèn)題解決,在這里做個(gè)記錄。
Vue中的數(shù)組賦值和在普通的JS中賦值還是有所區(qū)別。
- 以下操作可以引起界面刷新:push,pop ,unshift,shift,reverse,sort,splice
- 以下操作不會(huì)引起界面刷新:slice,concat ,filter
還有一點(diǎn)需要注意:
如果通過(guò)直接賦值或者改變長(zhǎng)度是無(wú)法讓界面刷新的。
(1)通過(guò)索引直接設(shè)置項(xiàng)。
(2)修改數(shù)組長(zhǎng)度,mylist.length=3
第二點(diǎn),在從服務(wù)器中獲取數(shù)據(jù)后賦值需要注意一個(gè)問(wèn)題:主體對(duì)象的改變。
比如在使用axios對(duì)象發(fā)起請(qǐng)求后,在返回方法中處理數(shù)據(jù)需要注意:
注意在axios的then方法中調(diào)用對(duì)象時(shí),不能使用this對(duì)象,因?yàn)榇藭r(shí)this對(duì)象指的是axios實(shí)例,所以通過(guò)this是獲取不到vue實(shí)例中的data數(shù)據(jù)的,必須在外界使用一個(gè)值來(lái)指向vue實(shí)例對(duì)象,通過(guò)這個(gè)外部對(duì)象來(lái)賦值,才是正確的。
var self;
created:function(){
self = this;
},
mouted:function(){ ? ? ? ?
axios.create({
? ? ? ? baseURL: 'url',
? ? ? ? timeout: 10000,
? ? ? ? headers: { 'Content-Type': 'application/json' }
? ? ? }).get('xxxxxxxxxx')
? ? ? ? ? .then(function(response){
? ? ? ? ? ? if(response.data.dataList.length>0){
? ? ? ? ? ? ? var datalist = response.data.dataList;
? ? ? ? ? ? ? for(var i=0;i<datalist.length;i++){
? ? ? ? ? ? ? ? self.DeviceTypeList.push({devicetype:datalist[i].name});
? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? })
? ? ? ? ? .catch(function(error){
? ? ? ? ? ? console.log(JSON.stringify(error));
? ? ? ? ? });
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue基于Teleport實(shí)現(xiàn)Modal組件
Teleport 提供了一種干凈的方法,允許我們控制在 DOM 中哪個(gè)父節(jié)點(diǎn)下渲染了 HTML,而不必求助于全局狀態(tài)或?qū)⑵洳鸱譃閮蓚€(gè)組件。2021-05-05
vue開(kāi)發(fā)中的base和publicPath的區(qū)別
本文主要介紹了vue開(kāi)發(fā)中的base和publicPath的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
vue+Element實(shí)現(xiàn)搜索關(guān)鍵字高亮功能
這篇文章主要為大家詳細(xì)介紹了vue+Element實(shí)現(xiàn)搜索關(guān)鍵字高亮功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
vue3一個(gè)元素如何綁定兩個(gè)或多個(gè)事件
這篇文章主要介紹了vue3一個(gè)元素如何綁定兩個(gè)或多個(gè)事件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
vue移動(dòng)端項(xiàng)目渲染pdf步驟及問(wèn)題小結(jié)
這篇文章主要介紹了vue移動(dòng)端項(xiàng)目渲染pdf步驟,vue-pdf的插件在使用的過(guò)程中是連連踩坑的,基本遇到3個(gè)問(wèn)題,分別在文中給大家詳細(xì)介紹,需要的朋友可以參考下2022-08-08
antfu大佬的v-lazy-show教我學(xué)會(huì)了怎么編譯模板指令
這篇文章主要介紹了antfu大佬的v-lazy-show,我學(xué)會(huì)了怎么編譯模板指令示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Vue實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中帶html標(biāo)簽的內(nèi)容輸出(原始HTML(Raw HTML))
今天小編就為大家分享一篇Vue實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中帶html標(biāo)簽的內(nèi)容輸出(原始HTML(Raw HTML)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
vue項(xiàng)目開(kāi)發(fā)中setTimeout等定時(shí)器的管理問(wèn)題
這篇文章主要介紹了vue項(xiàng)目開(kāi)發(fā)中setTimeout等定時(shí)器的管理問(wèn)題,需要的朋友可以參考下2018-09-09

