国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

Vue不能檢測(cè)到Object/Array更新的情況的解決

2019-11-19 13:36:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

看文檔不認(rèn)真,開發(fā)也沒有多注意,總是hack。忽悠忽悠就過去,但怎么說(shuō),歪門邪道還是不太好,現(xiàn)在就亡羊補(bǔ)牢,總結(jié)總結(jié)。

數(shù)組

索引

  1. 使用下標(biāo)更新數(shù)組元素;
  2. 使用賦值方式改變數(shù)組長(zhǎng)度;
  3. 使用下標(biāo)增刪數(shù)組元素;

正文

使用下標(biāo)更新數(shù)組元素

data: {  arrs: [0, 1, 2, 3]}

直接使用this.arrs[0] = 'zero';雖然數(shù)組確實(shí)是被更新了,但是更新不會(huì)被渲染到視圖(html頁(yè)面)上。因?yàn)閂ue沒有檢測(cè)到數(shù)組的更新。

由于 JavaScript 的限制,Vue 不能檢測(cè)以下變動(dòng)的數(shù)組:

當(dāng)你利用索引直接設(shè)置一個(gè)項(xiàng)時(shí),例如:vm.items[indexOfItem] = newValue

當(dāng)你修改數(shù)組的長(zhǎng)度時(shí),例如:vm.items.length = newLength

官方應(yīng)對(duì)方法:

1、Vue.set( target, key, value )

Vue.set(this.arrs, 0, 'zero');

2.vm.items.splice(indexOfItem, 1, newValue)

 

this.arrs.splice(0, 1, 'zero');

使用賦值方式改變數(shù)組長(zhǎng)度

即this.arrs.length = 100;無(wú)效!

官方應(yīng)對(duì)方法:

1、vm.items.splice(newLength)

this.arrs.splice(100);

使用下標(biāo)增刪數(shù)組元素

即一下操作無(wú)效:

this.arrs[this.arrs.length] = this.arrs.length;

官方應(yīng)對(duì)方法:變異方法。

  1. push()
  2. pop()
  3. shift()
  4. unshift()
  5. splice()
  6. sort()
  7. reverse()
this.arrs.push(this.arrs.length);

8、替換數(shù)組(改變引用)

如官方所言:filter(), concat() 和 slice()都是會(huì)返回一個(gè)新數(shù)組

this.arrs = this.arrs.contact(this.arrs.length);// or// this.arrs = this.arrs.contact([this.arrs.length]);

官方對(duì)性能問題的回應(yīng):

你可能認(rèn)為這將導(dǎo)致 Vue 丟棄現(xiàn)有 DOM 并重新渲染整個(gè)列表。幸運(yùn)的是,事實(shí)并非如此。Vue 為了使得 DOM 元素得到最大范圍的重用而實(shí)現(xiàn)了一些智能的、啟發(fā)式的方法,所以用一個(gè)含有相同元素的數(shù)組去替換原來(lái)的數(shù)組是非常高效的操作。

對(duì)象

索引

增刪元素;

正文

data: { foo: { name: 'isaac' }}

增刪元素

this.foo.job = 'coder';delete this.foo.name;

如上增刪元素是無(wú)效的。

官方的解決方法:

// 新增Vue.set(this.foo, 'job', 'coder');// 刪除Vue.delete(this.foo, 'name');

Vue.delete對(duì)數(shù)組也是有效傳送門

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜阳县| 含山县| 孙吴县| 江孜县| 西乡县| 彝良县| 海原县| 九寨沟县| 台湾省| 高台县| 呼玛县| 辽阳市| 株洲市| 呼伦贝尔市| 灵宝市| 崇仁县| 桂东县| 木兰县| 顺平县| 闻喜县| 开平市| 延津县| 襄汾县| 安义县| 嘉义市| 泗水县| 繁峙县| 沙河市| 宁津县| 九龙坡区| 抚宁县| 农安县| 德安县| 松桃| 酒泉市| 佳木斯市| 宁阳县| 清镇市| 陆河县| 陆河县| 高要市|