在vue 2.0 中操作陣列不跟新ui圖,即使使用set()或 $forceUpdate也不能跟新視圖,我在前段時間也遇到了一個問題,當時我使用的時element 的tree 組件
由于需要對tree 的陣列進行增刪改查等操作,開始使用set操作陣列時沒什么問題的,但是,tree 的陣列還需要整體更換第二次第三次資料,這時ui圖就跟新了,想了很久想到了自己偽造一次$forceUpdate方法,代碼如下
forceUpdate() {
// 除去第一個分類,其它分類內容不更新的hack方法
let temp = this.data //這里的data 就是tree 使用的陣列,將data 資料clone 一份
this.data = https://www.cnblogs.com/SuperBrother/p/[] //先將data 陣列置為空
this.$nextTick(() => {
this.data = temp //等dom 更新后再將data 陣列重新賦值原來的資料
this.$nextTick(() => {
this.addFileClass() //這里的是我添加了一些類在上面,可以不用管這行代碼
})
})
},
在需要更新ui 的地方 呼叫 forceUpdate()這個方法就能實作偽造$forceUpdate 方法了,ui圖也跟新了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/137189.html
標籤:JavaScript
