亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

vue數組操作不觸發前端重新渲染,怎么回

vue數組操作不觸發前端重新渲染,怎么回

青春有我 2019-04-08 09:04:42
vue數組操作不觸發前端重新渲染,怎么回
查看完整描述

2 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

需要注意的是,Vue之所以能夠監聽Model狀態的變化,是因為JavaScript語言本身提供了Proxy或者Object.observe()機制來監聽對象狀態的變化。但是,對于數組元素的賦值,卻沒有辦法直接監聽,因此,如果我們直接對數組元素賦值:

vm.todos[0] = {name: 'New name',description: 'New description'};

會導致Vue無法更新View。

正確的方法是不要對數組元素賦值,而是更新:

vm.todos[0].name = 'New name';vm.todos[0].description = 'New description';

或者,通過splice()方法,刪除某個元素后,再添加一個元素,達到“賦值”的效果:

var index = 0;var newElement = {...};vm.todos.splice(index, 1, newElement);

Vue可以監聽數組的splice、push、unshift等方法調用,所以,上述代碼可以正確更新View。



查看完整回答
反對 回復 2019-04-09
  • 2 回答
  • 0 關注
  • 3886 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號