問題描述,在vue的for循環中使用了指令,然后對數據進行篩選的時候,發現指令沒有起作用。
成都創新互聯總部坐落于成都市區,致力網站建設服務有成都做網站、成都網站建設、網絡營銷策劃、網頁設計、網站維護、公眾號搭建、成都小程序開發、軟件開發等為企業提供一整套的信息化建設解決方案。創造真正意義上的網站建設,為互聯網品牌在互動行銷領域創造價值而不懈努力!
如圖前面的圖標是根據文件名的后綴名,返回響應圖標的,通過指令實現的。然后我們在搜索框中刪選以后,數據更新了,但是圖標沒有更新
分析原因
...
問題就出在了:key='index'因為vue中for循環是根據key的值的變化來更新vnode的,很顯然我們經過篩選如果刪選出三條數據,那么index = 0, 1, 2沒有變化,所以vnode沒有更新
解決辦法1:我們設置:key的時候最好使用每條數據的id這樣就是唯一的,每次篩選,vnode都會更新。
解決辦法2:在指令中設置
// 添加bind設置 bind: function (el, binding, vnode) { // bind中的vnode里面的key可以給設置一個隨機數,這樣每次都會更新虛擬節點。 let num = parseInt(Math.random() * 10) vnode.key = num }, inserted: ...
總結
以上所述是小編給大家介紹的vue列表數據發生變化指令沒有更新問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創新互聯網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!