vue修改物件的屬性值後頁面不重新渲染

2022-09-15 11:45:14 字數 1604 閱讀 9174

最近專案在使用vue,遇到幾次修改了物件的屬性後,頁面並不重新渲染,場景如下:

html頁面如下:

[html] view plain copy

<

template

v-for

="item in tabledata"

>

<

div

:class

="">

<

div>}

div>

<

div>

<

el-button

size

="mini"

@click

="clickbtn(item.id)"

type

="info"

>編輯

el-button

>

<

span

style

="white-space:pre;"

>

span

><

p class

="el-icon-error"

v-show

="item.tip"

>

p>

div>

div>

template

>

js部分如下:

[j**ascript] view plain copy

<

script

>

export

default

] }

},

methods:

} } script

>

繫結的class是加乙個紅色的邊框,如下:

[css] view plain copy

.redborder

在專案中點選button後不出現紅色邊框和提示錯誤框,開啟debugger檢視,發現執行到了這裡卻沒有執行,tabledata中的值並沒有改變,這個方法在以前使用時會起作用,可能是這次的專案比較複雜引起的,具體原因不明。

後通過查詢資料修改為使用$set來設定修改值,js如下:

[j**ascript] view plain copy

this.$set(this.tabledata[id],"red",true);

但是依然沒有起作用,開啟debugger發現tabledata的值修改成功,沒有渲染到頁面上,查詢的資料也是比較凌亂,並不能解決問題,後請教大神,才知道是資料層次太多,沒有觸發render函式進行自動更新,需手動呼叫,呼叫方式如下:

[j**ascript] view plain copy

this.$forceupdate();

js完整**如下:

[j**ascript] view plain copy

<

script

>

export

default

] }

},

methods: }}

script

>

以上是我解決問題的全過程,有不對的地方請指教。

修改物件的某個屬性的值 Python呼叫類的屬性

呼叫類的其它資訊 在定義方法時,必須有self這一引數。這個引數表示某個物件。物件擁有類的所有性質,那麼我們可以通過self,呼叫類屬性。class human object laugh hahahaha def show laugh self print self.laugh def laugh ...

解決Vue多維陣列修改某一值後頁面不渲染的問題

問題如下 this.data為vue的data中的資料,它是乙個陣列,陣列裡面是物件,陣列中有乙個selected屬性,當在初次渲染完畢後,修改selected的值時,dom並沒有再次渲染。使用了this.set 登方法,但是不是很好。if this.iseditmode 強制重新整理dom,解決v...

修改物件的某個屬性的值 什麼是類,什麼是物件

一什麼是類?類是物件的 靈魂 物件可以是任何事物,而類不會做任何事情,也不會占用記憶體,只有當類成為物件並使用set語句和new關鍵字例項化為具體物件後,才能做事情並占用記憶體。把類例項化為具體物件的語法為 dim c as class set c new class 上述語句建立了乙個名為c的物件...