欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue改變對象或數(shù)組時的刷新機制的方法總結

 更新時間:2019年04月24日 09:36:29   作者:yuhehanfeng  
這篇文章主要介紹了vue改變對象或數(shù)組時的刷新機制的方法總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Vue數(shù)據(jù)響應原理

官方的解釋很清晰:

當你把一個普通的 JavaScript 對象傳給 Vue 實例的 data 選項,Vue 將遍歷此對象所有的屬性,并使用 Object.defineProperty 把這些屬性全部轉為 getter/setter。Object.defineProperty 是ES5 中一個無法 shim 的特性,這也就是為什么 Vue 不支持 IE8 以及更低版本瀏覽器的原因。 用戶看不到 getter/setter,但是在內部它們讓 Vue 追蹤依賴,在屬性被訪問和修改時通知變化。這里需要注意的問題是瀏覽器控制臺在打印數(shù)據(jù)對象時 getter/setter 的格式化并不同,所以你可能需要安裝 vue-devtools 來獲取更加友好的檢查接口。 每個組件實例都有相應的 watcher 實例對象,它會在組件渲染的過程中把屬性記錄為依賴,之后當依賴項的 setter 被調用時,會通知 watcher 重新計算,從而致使它關聯(lián)的組件得以更新。 

總結:

1.數(shù)組更改值或者增加刪除值,不會觸發(fā)更新。
2.對象更改值可觸發(fā)更新,增加或者刪除屬性不會觸發(fā)更新。
3.對象數(shù)組:數(shù)組中的對象更改值會觸發(fā)更新。

一、純數(shù)組-------showArr:[true,true]

數(shù)組中元素直接賦值,---不觸發(fā)刷新

this.showArr[0]=!this.showArr[0];

數(shù)組修改后整體賦值,---不觸發(fā)刷新

var parr=this.showArr;
parr[0]=!parr[0];
this.showArr=parr;

數(shù)組重新復制出一份新的,修改后整體賦值,---可觸發(fā)刷新

var parr=this.showArr.slice(0);
parr[0]=!parr[0];
this.showArr=parr;

用$set賦值,---可觸發(fā)刷新

this.$set(this.showArr,0,!this.showArr[0])

二、純對象-------showArr:{'showBool':true}

對象中元素直接賦值,---可觸發(fā)刷新

this.showArr['showBool']=!this.showArr['showBool'];

對象修改后整體賦值,---可觸發(fā)刷新

var parr=this.showArr;
parr['showBool']=!parr['showBool'];
this.showArr=parr;

用$set賦值,---可觸發(fā)刷新

this.$set(this.showArr,'showBool',!this.showArr['showBool']);

三、 對象數(shù)組-------showArr:[{'showBool':true},{'showBool':true}]

數(shù)組中元素直接賦值,---可觸發(fā)刷新

this.showArr[0]['showBool']=!this.showArr[0]['showBool'];

數(shù)組修改后整體賦值,---可觸發(fā)刷新

var parr=this.showArr;
parr[0]['showBool']=!parr[0]['showBool'];
this.showArr=parr;

數(shù)組重新復制出一份新的,修改后整體賦值,---可觸發(fā)刷新

var parr=this.showArr.slice(0);
parr[0]['showBool']=!parr[0]['showBool'];
this.showArr=parr;

用$set賦值,---可觸發(fā)刷新

this.$set(this.showArr[0],'showBool',!this.showArr[0]['showBool']);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue3+ts+elementPLus實現(xiàn)v-preview指令

    vue3+ts+elementPLus實現(xiàn)v-preview指令

    本文主要介紹了vue3+ts+elementPLus實現(xiàn)v-preview指令,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • 如何在vue里添加好看的lottie動畫

    如何在vue里添加好看的lottie動畫

    這篇文章主要介紹了在vue里添加好看的lottie動畫效果的方法,在vue中引入lottie非常簡單,需要的朋友可以參考下
    2018-08-08
  • React之input動態(tài)取值和賦值方式

    React之input動態(tài)取值和賦值方式

    這篇文章主要介紹了React之input動態(tài)取值和賦值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • elementui實現(xiàn)表格自定義排序的示例代碼

    elementui實現(xiàn)表格自定義排序的示例代碼

    本文主要介紹了elementui實現(xiàn)表格自定義排序的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • element-plus中el-table點擊單行修改背景色方法

    element-plus中el-table點擊單行修改背景色方法

    這篇文章主要給大家介紹了關于element-plus中el-table點擊單行修改背景色的相關資料,這是產品新加了的一個需求,分享給同樣遇到這個需求的朋友,需要的朋友可以參考下
    2023-07-07
  • vue-router3.x和vue-router4.x相互影響的問題分析

    vue-router3.x和vue-router4.x相互影響的問題分析

    這篇文章主要介紹了vue-router3.x和vue-router4.x相互影響的問題分析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Vue +WebSocket + WaveSurferJS 實現(xiàn)H5聊天對話交互的實例

    Vue +WebSocket + WaveSurferJS 實現(xiàn)H5聊天對話交互的實例

    這篇文章主要介紹了Vue +WebSocket + WaveSurferJS 實現(xiàn)H5聊天對話交互的實例,幫助大家更好的理解和學習vue,感興趣的朋友可以了解下
    2020-11-11
  • Vue項目history模式下微信分享爬坑總結

    Vue項目history模式下微信分享爬坑總結

    這篇文章主要介紹了Vue項目history模式下微信分享爬坑總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 使用vue3+TS實現(xiàn)簡易組件庫的全過程

    使用vue3+TS實現(xiàn)簡易組件庫的全過程

    當市面上主流的組件庫不能滿足我們業(yè)務需求的時候,那么我們就有必要開發(fā)一套屬于自己團隊的組件庫,下面這篇文章主要給大家介紹了如何使用vue3+TS實現(xiàn)簡易組件庫的相關資料,需要的朋友可以參考下
    2022-03-03
  • vue使用原生js實現(xiàn)滾動頁面跟蹤導航高亮的示例代碼

    vue使用原生js實現(xiàn)滾動頁面跟蹤導航高亮的示例代碼

    這篇文章主要介紹了vue使用原生js實現(xiàn)滾動頁面跟蹤導航高亮的示例代碼,滾動頁面指定區(qū)域導航高亮。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10

最新評論