最近專案在使用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的物件...