鍍金池/ 問答/HTML/ Vue再次加載組件,變量更新導(dǎo)致無法渲染視圖

Vue再次加載組件,變量更新導(dǎo)致無法渲染視圖

有一個(gè)組件,組件data中有一個(gè)數(shù)組:

data () {
  return {
    list: [] // 假設(shè)該數(shù)組的 dep.id = 53 
  }
}
vue中被監(jiān)聽的對(duì)象,在控制臺(tái)中打印的時(shí)候,會(huì)有 __ob__: Observer 其中有個(gè)dep.id
還不太了解這個(gè)dev.id的具體含義,猜測(cè)該id為對(duì)象唯一標(biāo)識(shí)

然后,在methods中,為list賦值,大概操作就是 this.list = someData, 然后視圖會(huì)自動(dòng)更新,目前一切正常

問題是,當(dāng)頁面進(jìn)行跳轉(zhuǎn),再回到該頁時(shí),會(huì)發(fā)現(xiàn) listdep.id值更新了,且該值貌似都比較大,基本在1000+,先假設(shè)該值是1024
而且,在操作list時(shí),即上面提到的操作 this.list = someData, 這里的listdep.id并不是1024,而是最初的值 53,這最終導(dǎo)致的結(jié)果就是視圖無法更新(猜測(cè)這時(shí)視圖引用的應(yīng)該是1024list

目前已經(jīng)通過在data()外定義list,使得重新加載組件時(shí)引用的都是同一個(gè)對(duì)象,但是這里面的歪歪還請(qǐng)大佬們指點(diǎn)一下

回答
編輯回答
青檸

貌似是因?yàn)榇a里有閉包,導(dǎo)致變量在組件銷毀時(shí)沒能初始化

2018年6月28日 05:30
編輯回答
乖乖噠

重新加載組件,data 恢復(fù)到初始值,這有什么問題嗎- -

2018年6月20日 16:08