本篇文章給大家帶來的內容是關于vue項目刷新當前頁面的解決方法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
場景:
有時候我們在vue
項目頁面做了一些操作,需要刷新一下頁面。
解決的辦法及遇到的問題:
this.$router.go(0)。這種方法雖然代碼很少,只有一行,但是體驗很差。頁面會一瞬間的白屏,體驗不是很好
用vue-router重新路由到當前頁面,頁面是不進行刷新的。
location.reload()。這種也是一樣,畫面一閃,體驗不是很好
推薦解決方法:
用provide / inject 組合
原理:允許一個祖先組件向其所有子孫后代注入一個依賴,不論組件層次有多深,并在起上下游關系成立的時間里始終生效
在App.vue,聲明reload方法,控制router-view的顯示或隱藏,從而控制頁面的再次加載。
<template> <p id="app"> <router-view v-if="isRouterAlive"></router-view> </p> </template> <script> export default { name: 'App', provide () { return { reload: this.reload } }, data () { return { isRouterAlive: true } }, methods: { reload () { this.isRouterAlive = false this.$nextTick(function () { this.isRouterAlive = true }) } } } </script>
在需要用到刷新的頁面。在頁面注入App.vue
組件提供(provide
)的 reload
依賴,在邏輯完成之后(刪除或添加...),直接this.reload()
調用,即可刷新當前頁面。
注入reload方法
直接調用this.reload
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。