首頁 >web前端 >前端問答 >vue不刷新目前頁面怎麼辦

vue不刷新目前頁面怎麼辦

藏色散人
藏色散人原創
2023-01-05 13:50:163470瀏覽

vue不刷新目前頁面的解決方法有:1、在data中定義一個閾值,程式碼如「this.show = false;setTimeout(() => {this.show = true},0 )」;2、在資料都處理完成後,使用「this.$froceUpdate()」強制刷新;3、在資料處理完成之後進行資料重設操作;4、使用「this.$set」全域方法進行數據更新等。

vue不刷新目前頁面怎麼辦

本教學操作環境:Windows10系統、Vue 3版、Dell G3電腦。

vue不刷新目前頁面怎麼辦?

vue專案中資料更新頁面不刷新問題

這種情況可以分為很多種.但是究其原因就是vue3.0以下版本無法監聽物件(包括陣列以及物件)的變化,當資料發生變化的時候vue的刷新機制是監聽不到資料變化的,所以需要我們在實際應用過程中透過各種處理來達到頁面刷新的目的。

1.這是一個簡單粗暴的解決方案吧,那就是在數據更新完成之後對頁面進行重排和重繪操縱,但是這種方式對頁面的消耗會急劇上升,不到萬不得已還是不要使用的好,具體實作方法如下:

在data中定義一個閾值,比如show,初始為true;

 

#程式碼實作:

 

this.show = false;
setTimeout(() => {
 
  this.show = true
 
},0)

2.在資料都處理完成之後,使用this.$froceUpdate()強制刷新;

3.在資料處理完成之後進行資料重置操作,但是值得注意的是這種方式只對物件有效(親測數組無效,有朋友能搞來的話歡迎留言,讓我膜拜一下,嘿嘿),並且這種方式不適用於對像中有鍵值為引用類型的資料來源(針對這種方式,個人覺得可以將引用類​​型資料顯示的範本單獨封裝一個元件,再在這個元件中進行資料刷新,當然,監聽資料變更是必不可少的,這個方法沒有測試過,按理說應該沒問題)

let temp = this.data;
this.data = null;
this.data = temp

4.採用官方提供的方法,使用過this.$set全局方法進行數據更新;這裡我們要說一下vue的數據綁定機制了;當一個頁面創建的過程中,html模板只有隻會綁定在data中初始創建的時候已經存在的數據,如果在頁面創建之後我們追加數據的話就會出現數據更新了,但是頁面卻沒有刷新的情況,this.$set (資料來源,要追加的資料的鍵/ 在來源資料中的索引,新資料)這個方法就是vue官方提供的用於追加資料的,並且能夠實現頁面刷新!

5.針對數組資料,常見修改資料之後頁面不刷新的原因有:

  • #透過數組下標修改數組元素

  • 修改陣列長度

那麼在修改陣列資料的時候,我們應該使用push(),pop(),shift(),unshift(),splice(), sort(),reverse()等原生的方法去操作資料,因為vue可以直接偵測這些方法所帶來的陣列資料變化。

6.資料不刷新最根本的原因還是因為vue認為模板結構沒有更新,所以不會產生新的虛擬的dom,所以我們可以為需要更新的dom添加一個會由操作結束而發生變化的key值,這樣就會刷新了(這是最近學到的新技能,再來補充)。

推薦學習:《vue影片教學

以上是vue不刷新目前頁面怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn