您好,登錄后才能下訂單哦!
這篇文章主要介紹vue如何實(shí)現(xiàn)局部刷新功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
利用Vue里面的provide+inject組合
使用2.2.0 新增的provide / inject控制<router-view>的顯示隱藏
在App.vue中使用provide
//App.vue <template> <div> <router-view v-if="isRouterAlive"></router-view> </div> </template> <script> export default { name: 'App', data () { return { isRouterAlive: true } }, provide(){ //提供 return { reload: this.reload } }, methods: { reload(){ this.isRouterAlive = false this.$nextTick( function () { this.isRouterAlive = true }) } } } </script>
在使用局部刷新的組件中使用inject
<script> export default { name: 'myComponent', data () { return {} }, inject: ['reload'], //注入 methods: { myCallBack(){ // ... this.reload() //局部刷新 } } } </script>
其他的刷新頁(yè)面方法
window.location.reload() //有白屏
默認(rèn)參數(shù)是 false,它會(huì)用 HTTP 頭 If-Modified-Since 來(lái)檢測(cè)服務(wù)器上的文檔是否已改變;
如果文檔已改變,reload() 會(huì)再次下載該文檔;
如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。
參數(shù)為 true,無(wú)論文檔的最后修改日期是什么,它都會(huì)繞過(guò)緩存,從服務(wù)器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時(shí)按住 Shift 健的效果是完全一樣
this.$router.go(0) //有白屏
先跳轉(zhuǎn)到一個(gè)空白頁(yè)面再跳轉(zhuǎn)回來(lái) //雖不會(huì)一閃,但是能看見路由快速變化
//需要頁(yè)面刷新的地方,跳轉(zhuǎn)到一個(gè)空白頁(yè) this.$router.push('/emptyPage') //空白頁(yè) beforeRouteEnter (to, from, next) { next(vm => { vm.$router.replace(from.path) }) }
以上是“vue如何實(shí)現(xiàn)局部刷新功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(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)容。