您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)vue項(xiàng)目怎么刷新當(dāng)前頁(yè)面,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
場(chǎng)景
在處理列表時(shí),常常有刪除一條數(shù)據(jù)或者新增數(shù)據(jù)之后需要重新刷新當(dāng)前頁(yè)面的需求。
2.遇到的問題
1)用vue-router重新路由到當(dāng)前頁(yè)面,頁(yè)面是不進(jìn)行刷新的
2)采用window.reload(),或者router.go(0)刷新時(shí),整個(gè)瀏覽器進(jìn)行了重新加載,閃爍,體驗(yàn)不好
3)解決方法
provide / inject 組合
作用:允許一個(gè)祖先組件向其所有子孫后代注入一個(gè)依賴,不論組件層次有多深,并在起上下游關(guān)系成立的時(shí)間里始終生效。
App.vue:
聲明reload方法,控制router-view的顯示或隱藏,從而控制頁(yè)面的再次加載
tableList.vue:
在頁(yè)面注入App.vue組件提供(provide)的 reload 依賴,在邏輯完成之后(刪除或添加...),直接this.reload()調(diào)用,即可刷新當(dāng)前頁(yè)面。
4.provide / inject 用法
provide:選項(xiàng)應(yīng)該是一個(gè)對(duì)象或返回一個(gè)對(duì)象的函數(shù)。該對(duì)象包含可注入其子孫的屬性。
inject:一個(gè)字符串?dāng)?shù)組,或一個(gè)對(duì)象,對(duì)象的 key 是本地的綁定名
提示:provide 和 inject 綁定并不是可響應(yīng)的。這是刻意為之的。如果你傳入了一個(gè)可監(jiān)聽的對(duì)象,那么其對(duì)象的屬性還是可響應(yīng)的。
==========================================
深入理解數(shù)據(jù)驅(qū)動(dòng)
以上算是開發(fā)過程中的一個(gè)坑,用了一段時(shí)間,今天再讀代碼的時(shí)候,感覺被坑的很嚴(yán)重。
1. 獲取列表方法
2.重新獲取數(shù)據(jù)
3.這樣再次調(diào)用獲取數(shù)據(jù),即可同步實(shí)現(xiàn)頁(yè)面數(shù)據(jù)更新(不會(huì)重新刷新頁(yè)面),同時(shí)保證有分頁(yè)時(shí),能夠停留在當(dāng)前頁(yè)(刷新前如果是第二頁(yè),刷新后依然在第二頁(yè)),
即其他查詢條件保持不變,體驗(yàn)效果好。
關(guān)于“vue項(xiàng)目怎么刷新當(dāng)前頁(yè)面”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。