您好,登錄后才能下訂單哦!
這篇文章主要介紹vue如何實現局部刷新功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
利用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>
其他的刷新頁面方法
window.location.reload() //有白屏
默認參數是 false,它會用 HTTP 頭 If-Modified-Since 來檢測服務器上的文檔是否已改變;
如果文檔已改變,reload() 會再次下載該文檔;
如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。
參數為 true,無論文檔的最后修改日期是什么,它都會繞過緩存,從服務器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時按住 Shift 健的效果是完全一樣
this.$router.go(0) //有白屏
先跳轉到一個空白頁面再跳轉回來 //雖不會一閃,但是能看見路由快速變化
//需要頁面刷新的地方,跳轉到一個空白頁 this.$router.push('/emptyPage') //空白頁 beforeRouteEnter (to, from, next) { next(vm => { vm.$router.replace(from.path) }) }
以上是“vue如何實現局部刷新功能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。