vue 刷新当前页面的方法

遇到一个页面刷新的问题,记录一下

1、this.$router.go(0)

这种方法页面会一瞬间的白屏,体验不是很好,虽然只是一行代码的事

2、location.reload()

这种也是一样,画面一闪,效果总不是很好

3、跳转空白页再跳回原页面

在需要页面刷新的地方写上:this.$router.push(‘/emptyPage‘),跳转到一个空白页。在emptyPage.vue里beforeRouteEnter 钩子里控制页面跳转,从而达到刷新的效果

beforeRouteEnter (to, from, next) {
      next(vm => {
        vm.$router.replace(from.path)
      })
}。

这种画面虽不会一闪,但是能看见路由快速变化。

4、控制<router-view>的显示隐藏

默认<router-view v-if="isRouterAlive" />isRouterAlive肯定是true,在需要刷新的时候把这个值设为false,接着再重新设为true:

this.isRouterAlive = false
this.$nextTick(function () {
  this.isRouterAlive = true
}这种方法从画面上是看不出破绽的。也可以搭配provide、inject使用。例如:<template>

  <div id="app">
    <router-view v-if="isRouterAlive"></router-view>
  </div>
</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>
然后在需要刷新的页面引入依赖:inject: [‘reload‘],
在需要执行的地方直接调用方法即可:this.reload()。

第4种方法的详细步骤参考该链接:https://www.jianshu.com/p/b6d7db35b6e4

参考链接如下:

https://www.cnblogs.com/qingqinglanlan/p/10131284.html

https://www.jianshu.com/p/b6d7db35b6e4

原文地址:https://www.cnblogs.com/-ting/p/12539154.html

时间: 2024-10-10 21:07:08

vue 刷新当前页面的方法的相关文章

Angular刷新当前页面的几种方法

默认,当收到导航到当前URL的请求,Angular路由器会忽略. <a routerLink="/heroes" routerLinkActive="active">Heroes</a> 重复点击同一链接页面不会刷新. 从Angular 5.1起提供onSameUrlNavigation属性,支持重新加载路由. @NgModule({ imports: [RouterModule.forRoot(routes, {onSameUrlNavig

js刷新当前页面的几种方法

如何实现刷新当前页面呢?借助js你将无所不能. 1,reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet])    参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和

JS刷新当前页面的几种方法总结

reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])                                                                                                                           参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面,

js刷新页面的方法

1,reload()方法刷新当前页面:2,replace() 方法刷新当前页面:3,页面自动刷新当前页面:三种实现js 刷新当前页面的方法用法 原文地址:https://www.cnblogs.com/huanhuan55/p/10801813.html

ASP.net获取当前页面的文件名,参数,域名等方法

ASP.net后台获取当前页面的文件名 System.IO.Path.GetFileName(Request.Path).ToString(); 获取当前页面文件名,参数,域名等方法 假设当前页完整地址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名 "www.test.com"是域名 "aaa"是虚拟目录名 "bbb.aspx"是页面名(

Portal系统中当且换学生时仍旧停留在当前页面的实现方法

一.BaseController.cs文件 1.OnActionExecuting方法,该方法可以被各子Controller重写 1 protected override void OnActionExecuting(ActionExecutingContext filterContext) 2 { 3 //do this in OnActionExecuting instead of constructor to 4 //A) make sure the child class has ful

java+selenium+new——同一个标签窗口里 ,访问多个网页的后退driver.navigate().back()、前进driver.navigate().forward()、刷新driver.navigate().refresh()等功能 。以及获取当前页面的title属性driver.getTitle()和获取当前页面的url地址driver.getCurrentUrl()

package rjcs; import org.openqa.selenium.firefox.FirefoxDriver; public class xinkaishi { public static void main(String[] args) { System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //设置

用js获取当前页面的url的相关信息方法

1. 当前页面的完整url获取方式: window.localtion.url; 2. pathname部分: window.location.pathname 3. 设置或获取对象指定的文件名或路径. alert(window.location.pathname) 设置或获取整个 URL 为字符串. alert(window.location.href); 设置或获取与 URL 关联的端口号码. alert(window.location.port) 设置或获取 URL 的协议部分. aler

关于vs2010新建MFC项目时弹出当前页面的脚本发生错误的解决方法

最近装了vs2010但是在新建项目的时候老是弹出当前页面的脚本发生错误,问了好多人网上也查了,结果还是不行,后来就自己尝试着解决,没想到竟然成功了,纪念一下,帮助需要解决此问题的人解决这样的问题. 正文: 首先看看问题,插入图片 我们就根据它提示错误的地方,找到它所提示的位置,比如第一张提示提示Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\MFC\Application\html\2052\default