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

深入理解vue.js中$watch的oldvalue與newValue

 更新時間:2017年08月07日 09:33:05   作者:zuank  
這篇文章主要給大家介紹了關(guān)于vue.js中$watch的oldvalue與newValue的相關(guān)資料,文中通過示例代碼介紹的非常詳細,并且介紹了關(guān)于watch的其他測試,對大家學習或者使用vue.js具有一定的參考學習價值,需要的朋友們下面跟著小編來一起看看吧。

$watch中的oldvalue和newValue

大家都知道,在vue.js中給我們提供了$watch的方法來做對象變化的監(jiān)聽,而且在callback中會返回兩個對象,分別是oldValue和newValue.

顧名思義,這兩個對象就是對象發(fā)生變化前后的值。

但是在使用過程中我發(fā)現(xiàn)這兩個值并不總是預(yù)期的。下面來一起看看詳細的介紹:

定義data的值

data: {
 arr: [{
  name: '笨笨',
  address: '上海'
 }, {
  name: '笨笨熊',
  address: '北京'
 }],
 obj: {
  name: '呆呆',
  address: '蘇州'
 },
 str: '哈哈哈'
 }

定義watch

watch: {
 arr: function(newValue, oldValue) {
  console.log(newValue, oldValue)
  console.log(JSON.stringify(oldValue) === JSON.stringify(newValue))
 },
 obj: function(newValue, oldValue) {
  console.log(newValue, oldValue)
  console.log(JSON.stringify(oldValue) === JSON.stringify(newValue))
 },
 str: function(newValue, oldValue) {
  console.log(newValue, oldValue)
  console.log(JSON.stringify(oldValue) === JSON.stringify(newValue))
 },
 }

定義事件觸發(fā)

methods: {
 test() {
  this.arr.push({
  name: 9
  })
  this.$set(this.obj, 'i', 0)
  this.str = ''
 },
 test1() {
  this.arr = [{
  name: '000'
  }]
  this.obj = {
  name: 999
  }
  this.str = '123'
 }
 }

測試結(jié)果為

  1. 對數(shù)組進行push操作和對Obj進行$set操作,雖然都可能觸發(fā)watch事件,但是在callback返回的結(jié)果中,oldValue和newValue相同。字符串對象如預(yù)期返回
  2. 在對數(shù)組和Obj統(tǒng)一進行賦值操作時,watch觸發(fā)并且oldValue和newValue如預(yù)期返回

關(guān)于watch的其他測試

不能夠觸發(fā)監(jiān)聽的

1、數(shù)組

        修改某個下標的某個屬性的值

        使用原生delete刪除某個屬性

        對某個下標新增一個屬性(不使用$set)

        對某個下標重新賦值

2、對象

        修改某個屬性的值(但是會觸發(fā)這個屬性的監(jiān)聽)

        新增一個屬性(不使用$set)

        原生delete刪除某個屬性

以上總結(jié)可能存在不足

萬金油實現(xiàn)watch監(jiān)聽

在修改完數(shù)據(jù)后添加這樣一段代碼

array

arr = [...arr]

obj

obj = {...obj}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Vue3中響應(yīng)式解構(gòu)props的使用

    Vue3中響應(yīng)式解構(gòu)props的使用

    本文主要介紹了Vue3中響應(yīng)式解構(gòu)props的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • vue mint-ui tabbar變組件使用

    vue mint-ui tabbar變組件使用

    這篇文章主要介紹了vue mint-ui tabbar變組件使用方法及實例代碼,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • VUE?Element修改el-input和el-select長度的具體步驟

    VUE?Element修改el-input和el-select長度的具體步驟

    這篇文章主要給大家介紹了關(guān)于VUE?Element修改el-input和el-select長度的具體步驟,文中通過代碼介紹的非常詳細,對大家學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • 使用WebSocket+SpringBoot+Vue搭建簡易網(wǎng)頁聊天室的實現(xiàn)代碼

    使用WebSocket+SpringBoot+Vue搭建簡易網(wǎng)頁聊天室的實現(xiàn)代碼

    這篇文章主要介紹了使用WebSocket+SpringBoot+Vue搭建簡易網(wǎng)頁聊天室的實現(xiàn),具體的步驟如下,需要的朋友可以參考下
    2023-03-03
  • 詳解如何在 vue 項目里正確地引用 jquery 和 jquery-ui的插件

    詳解如何在 vue 項目里正確地引用 jquery 和 jquery-ui的插件

    本篇文章主要介紹了詳解如何在 vue 項目里正確地引用 jquery 和 jquery-ui的插件,具有一定的參考價值,有興趣的可以了解一下
    2017-06-06
  • vue中v-for和v-if一起使用之使用compute的示例代碼

    vue中v-for和v-if一起使用之使用compute的示例代碼

    這篇文章主要介紹了vue中v-for和v-if一起使用之使用compute的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • elementui簡易介紹(推薦)

    elementui簡易介紹(推薦)

    ElementUI是一套基于VUE2.0的桌面端組件庫,ElementUI提供了豐富的組件幫助開發(fā)人員快速構(gòu)建功能強大、風格統(tǒng)一的頁面,本文給大家分享elementui簡易介紹,感興趣的朋友一起看看吧
    2024-01-01
  • vue結(jié)合leaflet實現(xiàn)熱力圖

    vue結(jié)合leaflet實現(xiàn)熱力圖

    本文主要介紹了vue實現(xiàn)熱力圖,結(jié)合leaflet.heat插件可以很容易的做出熱力圖,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • 詳解Vue中的scoped及穿透方法

    詳解Vue中的scoped及穿透方法

    這篇文章主要介紹了Vue中的scoped及穿透方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Vue使用electron轉(zhuǎn)換項目成桌面應(yīng)用方法介紹

    Vue使用electron轉(zhuǎn)換項目成桌面應(yīng)用方法介紹

    Electron也可以快速地將你的網(wǎng)站打包成一個原生應(yīng)用發(fā)布,下面這篇文章主要給大家介紹了關(guān)于Vue和React中快速使用Electron的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11

最新評論