學了那么久的vue,今天突然發(fā)現了this.$set這個用法,之前感覺沒有應用場景出嘹,但是還是有用得到的地方。
當你發(fā)現你給對象加了一個屬性咬崔,在控制臺能打印出來税稼,但是卻沒有更新到視圖上時烦秩,也許這個時候就需要用到this.set的功能就是解決這個問題的啦郎仆。官方解釋:向響應式對象中添加一個屬性只祠,并確保這個新屬性同樣是響應式的,且觸發(fā)視圖更新扰肌。它必須用于向響應式對象上添加新屬性抛寝,因為 Vue 無法探測普通的新增屬性 (比如 this.myObject.newProperty = 'hi'),你會發(fā)現vue官網是vue.set曙旭,vue.set的用法.
下面就展示一個應用到的場景:鼠標移入的時候顯示右邊的輸入框和垃圾桶
這個是鼠標移入后的事件
@mouseenter="mouseenter(data)"
正常來說在方法里注入下面代碼就可以顯示了
mouseenter(data) {
data.del = true
},
但果不其然盗舰,控制臺有data的數據,但是視圖卻沒有更新到.
那么就需要用到這個this.$set了桂躏,修改代碼為
mouseenter(data) {
this.$set(data, 'del', true)
},
果然钻趋,視圖就如愿的更新成功了。
這就是this.$set的用法剂习,希望能幫到大家