vue中this.$set的用法

學了那么久的vue,今天突然發現了this.$set這個用法,之前感覺沒有應用場景,但是還是有用得到的地方。

當你發現你給對象加了一個屬性,在控制臺能打印出來,但是卻沒有更新到視圖上時,也許這個時候就需要用到this.set()這個方法了,簡單來說this.set的功能就是解決這個問題的啦。官方解釋:向響應式對象中添加一個屬性,并確保這個新屬性同樣是響應式的,且觸發視圖更新。它必須用于向響應式對象上添加新屬性,因為 Vue 無法探測普通的新增屬性 (比如 this.myObject.newProperty = 'hi'),你會發現vue官網是vue.set,vue.set的用法.
下面就展示一個應用到的場景:鼠標移入的時候顯示右邊的輸入框和垃圾桶

image.png

image.png

這個是鼠標移入后的事件

@mouseenter="mouseenter(data)"

正常來說在方法里注入下面代碼就可以顯示了

 mouseenter(data) {
      data.del = true
 },

但果不其然,控制臺有data的數據,但是視圖卻沒有更新到.
那么就需要用到這個this.$set了,修改代碼為

mouseenter(data) {
      this.$set(data, 'del', true)
 },

果然,視圖就如愿的更新成功了。
這就是this.$set的用法,希望能幫到大家

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。