vue實(shí)現(xiàn)在進(jìn)行增刪改操作后刷新頁面
問題
通常在后臺管理項目中,對數(shù)據(jù)進(jìn)行增刪改查是常規(guī)操作。在進(jìn)行這些操作后,需要手動刷新才能更新列表。本文主要討論進(jìn)行增刪改查相關(guān)操作后如何使當(dāng)前頁面顯示操作后的最新數(shù)據(jù)。
解決方案 || 以刪除為例:
1.強(qiáng)制刷新:this.$forceUpdate()
2.使用window.reload( ) 或 router.go(0),但會使整個瀏覽器進(jìn)行重載,頁面閃爍。
3.重新調(diào)用接口:但性能較差,代碼冗長。


4.provide / inject :(推薦)
允許一個祖先組件向其所有子孫后代注入一個依賴,不論組件層次有多深,并在其上下游關(guān)系成立的時間里始終生效。
首先在App.vue全局設(shè)置provide

在需要刷新的操作頁面內(nèi)注入inject:[‘reload']

在調(diào)用接口操作成功后 this.reload( )
比如在刪除接口調(diào)用成功后:

劃重點(diǎn)
provide:一個對象或返回一個對象的函數(shù)。該對象包含可注入其子孫的屬性。
inject:一個字符串?dāng)?shù)組,或一個對象,對象的 key 是本地的綁定名。
$nextTick(點(diǎn)擊查看vue相關(guān)文檔)
除此之外,provide和inject的用法主要是:在父組件中通過provider來提供變量,然后在子組件中通過inject來注入變量。
需要注意的是這里不論子組件有多深,只要調(diào)用了inject那么就可以注入provider中的數(shù)據(jù)。而不是局限于只能從當(dāng)前父組件的prop屬性來獲取數(shù)據(jù)。
補(bǔ)充知識:vue主動刷新頁面及列表數(shù)據(jù)刪除后的刷新方法
1.場景
在處理列表時,常常有刪除一條數(shù)據(jù)或者新增數(shù)據(jù)之后需要重新刷新當(dāng)前頁面的需求。
2.遇到的問題
1. 用vue-router重新路由到當(dāng)前頁面,頁面是不進(jìn)行刷新的
2.采用window.reload(),或者router.go(0)刷新時,整個瀏覽器進(jìn)行了重新加載,閃爍,體驗(yàn)不好
3.解決方法
provide / inject 組合
作用:允許一個祖先組件向其所有子孫后代注入一個依賴,不論組件層次有多深,并在起上下游關(guān)系成立的時間里始終生效。
App.vue:
聲明reload方法,控制router-view的顯示或隱藏,從而控制頁面的再次加載

tableList.vue:
在頁面注入App.vue組件提供(provide)的 reload 依賴,在邏輯完成之后(刪除或添加...),直接this.reload()調(diào)用,即可刷新當(dāng)前頁面。

4.provide / inject 用法
provide:選項應(yīng)該是一個對象或返回一個對象的函數(shù)。該對象包含可注入其子孫的屬性。
inject:一個字符串?dāng)?shù)組,或一個對象,對象的 key 是本地的綁定名
提示:provide 和 inject 綁定并不是可響應(yīng)的。這是刻意為之的。如果你傳入了一個可監(jiān)聽的對象,那么其對象的屬性還是可響應(yīng)的。
深入理解數(shù)據(jù)驅(qū)動
以上算是開發(fā)過程中的一個坑,用了一段時間,今天再讀代碼的時候,感覺被坑的很嚴(yán)重。
1. 獲取列表方法

2.重新獲取數(shù)據(jù)

3.這樣再次調(diào)用獲取數(shù)據(jù),即可同步實(shí)現(xiàn)頁面數(shù)據(jù)更新(不會重新刷新頁面),同時保證有分頁時,能夠停留在當(dāng)前頁(刷新前如果是第二頁,刷新后依然在第二頁),
即其他查詢條件保持不變,體驗(yàn)效果好!
以上這篇vue實(shí)現(xiàn)在進(jìn)行增刪改操作后刷新頁面就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue結(jié)合el-upload實(shí)現(xiàn)騰訊云視頻上傳功能
這篇文章主要介紹了vue結(jié)合el-upload實(shí)現(xiàn)騰訊云視頻上傳功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Ant Design Vue resetFields表單重置不生效問題及解決
這篇文章主要介紹了Ant Design Vue resetFields 表單重置不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
Vue首屏性能優(yōu)化組件知識點(diǎn)總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于Vue首屏性能優(yōu)化組件知識點(diǎn)總結(jié),有需要的朋友們可以跟著學(xué)習(xí)下。2021-11-11
vite2.x實(shí)現(xiàn)按需加載ant-design-vue@next組件的方法
這篇文章主要介紹了vite2.x實(shí)現(xiàn)按需加載ant-design-vue@next組件的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

