中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue.js中$watch的oldvalue與newValue怎么用

發布時間:2021-09-01 14:29:08 來源:億速云 閱讀:339 作者:小新 欄目:web開發

這篇文章給大家分享的是有關vue.js中$watch的oldvalue與newValue怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

$watch中的oldvalue和newValue

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

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

但是在使用過程中我發現這兩個值并不總是預期的。下面來一起看看詳細的介紹:

定義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))
 },
 }

定義事件觸發

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'
 }
 }

測試結果為

  1. 對數組進行push操作和對Obj進行$set操作,雖然都可能觸發watch事件,但是在callback返回的結果中,oldValue和newValue相同。字符串對象如預期返回

  2. 在對數組和Obj統一進行賦值操作時,watch觸發并且oldValue和newValue如預期返回

關于watch的其他測試

不能夠觸發監聽的

1、數組

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

        使用原生delete刪除某個屬性

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

        對某個下標重新賦值

2、對象

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

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

        原生delete刪除某個屬性

以上總結可能存在不足

萬金油實現watch監聽

在修改完數據后添加這樣一段代碼

array

arr = [...arr]

obj

obj = {...obj}

感謝各位的閱讀!關于“vue.js中$watch的oldvalue與newValue怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普兰店市| 寿宁县| 教育| 左权县| 孟州市| 永兴县| 博野县| 深州市| 堆龙德庆县| 阿拉善盟| 丹棱县| 弋阳县| 苏尼特右旗| 呈贡县| 海阳市| 张家界市| 秦皇岛市| 云和县| 湖口县| 南岸区| 满洲里市| 将乐县| 宜都市| 台山市| 缙云县| 齐齐哈尔市| 汝阳县| 奉化市| 长丰县| 家居| 武威市| 万州区| 湖口县| 苏尼特左旗| 朝阳县| 平罗县| 荥经县| 建德市| 洪雅县| 垣曲县| 德兴市|