日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue 组件属性监听_vuejs组件内的对象属性监听问题

發布時間:2025/3/11 vue 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 组件属性监听_vuejs组件内的对象属性监听问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

跟數據類型是有關的。

當你把一個普通的 JavaScript 對象傳給 Vue 實例的 data 選項,Vue 將遍歷此對象所有的屬性,并使用 Object.defineProperty 把這些屬性全部轉為 getter/setter。

但是不是所有的變動都可以通過set/get捕捉到,比如一個數組

let a = [1, 2, 3]

a[0] = 2 // 這個就是沒法通過set/get捕捉到的變動,所以不能觸發vue的響應式更新

this.$set(a, 0 ,2) //這樣就可以

a.splice(0, 1, 2) //這樣也可以

又比如一個對象

let a = {

name : 'gg'

}

a.name = 'ok' // 會觸發dom更新

a.age = 18 //不會觸發dom更新,因為在vue‘改造’a對象的時候,不存在age屬性,顯然沒辦法給它添加getter/setter

因此當你對數組進行操作時,可以使用vue提供的8個數組變異方法來保證觸發響應式更新:

push()

pop()

shift()

unshift()

splice()

sort()

reverse()

當你需要給一個對象添加屬性時,使用 Vue.set(vm.someObject, 'b', 2) 或者 this.$set(this.someObject,'b',2)

當然,構造新的對象/數組然后重新賦值也是可以的

總結

以上是生活随笔為你收集整理的vue 组件属性监听_vuejs组件内的对象属性监听问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。