本文小編為大家詳細介紹“vue不刷新當前頁面如何解決”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“vue不刷新當前頁面如何解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計,蒼梧網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蒼梧等地區(qū)。蒼梧做網(wǎng)站價格咨詢:18980820575
vue不刷新當前頁面的解決辦法有:1、在data中定義一個閾值,代碼如“this.show = false;setTimeout(() => {this.show = true},0)”;2、在數(shù)據(jù)都處理完成后,使用“this.$froceUpdate()”進行強制刷新;3、在數(shù)據(jù)處理完成之后進行數(shù)據(jù)重置操作;4、使用“this.$set”全局方法進行數(shù)據(jù)更新等。
vue項目中數(shù)據(jù)更新頁面不刷新問題
這種情況可以分為很多種.但是究其原因就是vue3.0以下版本無法監(jiān)聽對象(包括數(shù)組以及對象)的變化,當數(shù)據(jù)發(fā)生變化的時候vue的刷新機制是監(jiān)聽不到數(shù)據(jù)變化的,所以需要我們在實際應(yīng)用過程中通過各種處理來達到頁面刷新的目的。
1.這是一種簡單粗暴的解決方案吧,那就是在數(shù)據(jù)更新完成之后對頁面進行重排和重繪操縱,但是這種方式對頁面的消耗會急劇上升,不到萬不得已還是不要使用的好,具體實現(xiàn)方法如下:
在data中定義一個閾值,比如show,初始為true;
代碼實現(xiàn):
this.show = false;
setTimeout(() => {
this.show = true
},0)
2.在數(shù)據(jù)都處理完成之后,使用this.$froceUpdate()進行強制刷新;
3.在數(shù)據(jù)處理完成之后進行數(shù)據(jù)重置操作,但是值得注意的是這種方式只對對象有效(親測數(shù)組無效,有朋友能搞來的話歡迎留言,讓我膜拜一下,嘿嘿),并且這種方式不適用于對象中有鍵值為引用類型的數(shù)據(jù)源(針對這種方式,個人覺得可以將引用類型數(shù)據(jù)顯示的模板單獨封裝一個組件,再在這個組件中進行數(shù)據(jù)刷新,當然,監(jiān)聽數(shù)據(jù)變化是必不可少的,這個方法沒有測試過,按理說應(yīng)該沒問題)
let temp = this.data;
this.data = null;
this.data = temp
4.采用官方提供的方法,使用過this.$set全局方法進行數(shù)據(jù)更新;這里我們要說一下vue的數(shù)據(jù)綁定機制了;當一個頁面創(chuàng)建的過程中,html模板只有只會綁定在data中初始創(chuàng)建的時候已經(jīng)存在的數(shù)據(jù),如果在頁面創(chuàng)建之后我們追加數(shù)據(jù)的話就會出現(xiàn)數(shù)據(jù)更新了,但是頁面卻沒有刷新的情況,this.$set(數(shù)據(jù)源,要追加的數(shù)據(jù)的鍵 / 在源數(shù)據(jù)中的索引,新數(shù)據(jù))這個方法就是vue官方提供的用于追加數(shù)據(jù)的,并能夠?qū)崿F(xiàn)頁面刷新!
5.針對數(shù)組數(shù)據(jù),常見修改數(shù)據(jù)之后頁面不刷新的原因有:
通過數(shù)組下標修改數(shù)組元素
修改數(shù)組長度
那么在修改數(shù)組數(shù)據(jù)的時候,我們應(yīng)該使用push(),pop(),shift(),unshift(),splice(),sort(),reverse()等原生的方法去操作數(shù)據(jù),因為vue可以直接檢測這些方法所帶來的數(shù)組數(shù)據(jù)變化。
6.數(shù)據(jù)不刷新最根本的原因還是因為vue認為模板結(jié)構(gòu)沒有更新,所以不會生成新的虛擬的dom,所以我們可以為需要更新的dom添加一個會由操作結(jié)束而發(fā)生變化的key值,這樣就會刷新了(這是最近學(xué)到的一個新技能,再來補充一下)。
讀到這里,這篇“vue不刷新當前頁面如何解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。