Vue刷新当前页面几种方式

Vue刷新当前页面几种方式问题:最近些日子项目中突然碰到了一个需求,再完成编辑操作之后需要进行页面刷新,通过实验有如下几种姿势可以解决需求中的问题,下面进行简单总结如下。姿势一:this.$router.go(0)这个姿势是利用了history中前进和后退的功能,传入0刷新当前页面。但是有一个问题就是页面整个刷新过程中会白屏,严重影响用户的体验感,效果不好。this.$router.go(0)姿势二:location.reload()这个姿势是利用了直接使用刷新当前页面的方法。但是同样存在有一个问题就是页

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

问题:

最近些日子项目中突然碰到了一个需求,再完成编辑操作之后需要进行页面刷新,通过实验有如下几种姿势可以解决需求中的问题,下面进行简单总结如下。

姿势一:this.$router.go(0)
这个姿势是利用了 history 中前进和后退的功能,传入 0 刷新当前页面。但是有一个问题就是页面整个刷新过程中会白屏,严重影响用户的体验感,效果不好。

this.$router.go(0)

姿势二:location.reload()

这个姿势是利用了直接使用刷新当前页面的方法。但是同样存在有一个问题就是页面整个刷新过程中会白屏,严重影响用户的体验感,效果也是不好,和姿势一的现象一直,也不推荐使用。

location.reload()

姿势三:provide / inject组合(推荐使用)

允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。
provide:选项应该是一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。
inject:一个字符串数组,或一个对象,对象的 key 是本地的绑定名。
注意:provide和inject绑定并不是可响应的。这是刻意为之的。如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。

基本使用步骤如下:

步骤一:(App.vue)
通过 $nextTick(),协助实现。先把 移除,移除后再重新添加,达到刷新当前页面的功能。是目前最合适的实现方式。

<template>
 <div id="app">
   <router-view v-if="isRouterAlive"/>
 </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>

步骤二:(chapter.vue)

inject: ['reload'],

在这里插入图片描述

代码结构

步骤三:(chapter.vue)
直接this.reload()调用,即可刷新当前页面。

this.reload()// 需要刷新页面

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181219.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 轻量级MVVM框架Stylet介绍:(3)关于Bootstrapper「建议收藏」

    轻量级MVVM框架Stylet介绍:(3)关于Bootstrapper「建议收藏」Bootstrapper负责引导应用程序,用于配置IoC容器,创建根ViewModel的新实例,并使用显示WindowManager出来。它还提供了各种其他功能,如下所述。引导程序有两种风格

    2022年7月4日
    35
  • glassfish server_glassware

    glassfish server_glassware介绍以后再补,先给出怎么用.官网:https://glassfish.java.net下载地址https://glassfish.java.net/download.html解压到你的工作目录下,先看jdk是否安装了,java-version.启动glassfish,进入到你的glassfish目录下,运行./asadminstart-domain接

    2022年8月20日
    5
  • CAS实现单点登录(SSO)经典完整教程

    CAS实现单点登录(SSO)经典完整教程一、简介1、cas是有耶鲁大学研发的单点登录服务器2、本教材所用环境Tomcat7.2JDK6CASService版本cas-server-3.4.8-rele

    2022年6月7日
    100
  • Latex插入图片却不显示问题小结

    Latex插入图片却不显示问题小结1、首先检查有没有导入宏包\usepackage{graphicx}2、检查图片路径有无问题3、可以尝试将Tex的同名文件删除,重新编译生成4、若是文章分栏\begin{multicols}{2}那是因为multicols环境不能识别figure环境,重新定义一个环境即可\newenvironment{figurehere}{\def\@captype{figure}}{}\makeatother%用于连接公式编号在文中,用figureher

    2022年5月11日
    45
  • 用python画一个爱心_python 画一个点

    用python画一个爱心_python 画一个点fromturtleimport*pensize(1)pencolor(‘red’)fillcolor(‘pink’)speed(5)up()goto(-30,100)down()begin_fill()left(90)circle(120,180)circle(360,70)left(38)circle(360,70)circle(120,180)end_fill()up()goto(-100,-100)down()

    2022年9月6日
    4
  • CSS画三角形及其原理

    CSS画三角形及其原理本文转自https://blog.csdn.net/pengjunlee/article/details/53002553搜索网络之后发现三角形可以通过以下CSS代码实现:#triangle_bottom{height:0px;width:0px;border-left:20pxsolidtransparent;border-right:20pxsolidtransparent…

    2022年6月23日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号