this.$set用法


this.$set()的主要功能是解決改變數據時未驅動視圖的改變的問題,也就是實際數據被改變了,但我們看到的頁面並沒有變化,這里主要講this.$set()的用法,如果你遇到類似問題可以嘗試下,vue官網寫的是Vue.set,和this.$set()是一樣的,但要注意當前this的指向問題,你要記住時this.$set()時當前this的指向一定要是最外層。

vue和uniapp語法大部分都是相同的,uniapp是針對移動端的,並且可以開發小程序,最重要的區別是uniapp開發小程序時不能操作dom,注意,是不能,不是不建議,操作DOM后編譯代碼時會報錯。

先寫下數據

items: [
  { message: "one", id: "1" },
  { message: "two", id: "2" },
  { message: "three", id: "3" }
]

通常我們改變某個message會這么寫

this.items[0].message='one1'; //這么寫一般是可以更新視圖的 我只是給舉this.$set()用法的例子  

使用this.$set()時

this.$set(this.items[0],'message','one1');//改成數字類型就不用了加引號

有的時候我們可能一次改多個

this.items[0]={ message: "one3", id: "13" };

使用this.$set()時, 格式this.$set( target, key, value )

this.$set( this.items, 0, { message: "one3", id: "13" })

給大家復現一種不渲染的例子:當前我們數組內有三條對象,那么我想加一條,並且我就不用類似push的東西,還要能渲染到視圖

普通寫法 不渲染

this.items[3]={ message: "four", id: "4" };//數據已經被改變  但是視圖層沒渲染,我們看不到

使用this.$set()時, 格式this.$set( target, key, value )

this.$set( this.items, 3, { message: "four", id: "4" })//這樣就可以渲染到視圖層了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM