vue刷新当前页面

我们经常遇到此种情形,当新增编辑完成后,需要重新刷新页面数据,重新调用接口较多时,挨个调用过于繁琐;甚至可能遇到跨组件调用的问题,毫无疑问,处理起来有些许费力,本文就将如何处理这种情况可用方案进行总结:

方案一:整页刷新–不推荐

实现
location.reload() 
this.$router.go(0) 
优点

1.代码简单,仅需一行代码即可实现效果;
2.便于理解,相当于重新加载一遍系统;

缺点

相当于按ctrl+F5 强制刷新,整个页面将重新加载,故而加载速度慢,会出现一个瞬间的空白页面,体验感不好。

方案二:路由跳转当前页面–不推荐

实现
1.当前页面增加页面跳转
this.$router.replace({path: this.$route.path,query: {routeKey: new Date().getTime()}
})
2.监听当前页面路由变化
watch: {'$route'(newVal) {if(newVal.query.routeKey) {// 调用需变更的方法}}
}
优点

代码简单;

缺点

1.地址栏会变化,多增加参数;
2.只适用于第二种情况,跨组件;
3.代码不可重复性利用;

方案三:路由跳转–比较推荐

实现
1.当前页面增加页面跳转
this.$router.replace({path: '/centerPage',query: {to:this.$route.path}
})
2.增加中间页面
<template><div class='centerPage'></div>
</template><script>
export default {name: "centerPage",methods: {jump() {let url = this.$route.query.tothis.$router.replace(url)}},created() {this.jump()}
}
</script>
优点

1.不会像方案一样有长时间的白屏;
2.多个需求需要时,可重复使用;

缺点

可以在地址栏看到路由切换的过程;

方案四:provide / inject组合–最为推荐

provide/inject 是 Vue 在 2.2.0 版本新增的 API;
provide 可以在祖先组件中指定我们想要提供给后代组件的数据或方法,而在任何后代组件中,我们都可以使用 inject 来接收 provide 提供的数据或方法。

实现
1.修改app.vue
<template><div id="app"><router-view v-if='isRouterAlive'/></div>
</template><script>
export default {name: 'App',components: {},data() {return{isRouterAlive: true // 控制页面显隐}},provide() {return{reload: this.reload}},methods: {reload(){this.isRouterAlive = falsethis.$nextTick(() => {this.isRouterAlive = true})}}
}
</script>
2.当前页面调用
<template><div class='currentPage'></div>
</template><script>
export default {name: "currentPage",inject: ['reload'], // 引用methods: {submit() {this.reload() // 调用}}
}
</script>
优点

1.不会像方案一样有长时间的白屏,三个方案中渲染速度最快;
2.多个需求需要时,可重复使用;
3.不会在地址栏看到路由切换的过程;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于时域有限差分法的FDTD的计算电磁学算法-YEE网格下的更新公式推导

基于时域有限差分法的FDTD的计算电磁学算法&#xff08;含Matlab代码&#xff09;-YEE网格下的更新公式推导 参考书籍&#xff1a;The finite-difference time-domain method for electromagnetics with MATLAB simulations&#xff08;国内翻译版本&#xff1a;MATLAB模拟的电…

【MATLAB】 SSA奇异谱分析信号分解算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 SSA奇异谱分析&#xff08;Singular Spectrum Analysis&#xff09;是一种处理非线性时间序列数据的方法&#xff0c;可以对时间序列进行分析和预测。 它基于构造在时间序列上的特定矩阵的奇异值分解&#…

C#,入门教程(66)——枚举Enum的高等用法

前言&#xff1a;国内码农与国外优秀程序员的最大区别是&#xff0c;我们的专家、教授喜欢唾沫横飞地&#xff0c;夸夸其谈语言特性、框架、性能&#xff0c;唯一目的是带私货&#xff08;书籍或教程&#xff09;&#xff0c;很少能写出真有用的程序。差距在哪呢&#xff1f;基…

线性代数——行列式相关性质

目录 一、行列式与它的转置列行列式相等 二、对换行列式的两行&#xff08;列&#xff09;&#xff0c;行列式变号 三、行列式某行&#xff08;列&#xff09;有公因子k&#xff0c;则k可以提到行列式外 四、行列式中若两行成比例&#xff0c;则行列式为0 五、行列式的某一行…

Python | 三、函数

函数的形参和实参&#xff08;对应卡码网11题句子缩写&#xff09; 除非实参是可变对象&#xff0c;如列表、字典和集合&#xff0c;则此时形参会复制实参的地址&#xff0c;即此时二者指向同一个地址&#xff0c;因此在函数内对形参的操作会影响到实参除这种情况外&#xff0…

嵌入式应用开发学习建议

学习嵌入式应用开发需要掌握一定的编程语言、操作系统和硬件知识&#xff0c;以下是一些学习嵌入式应用开发的建议: 1&#xff09;学习C/C等编程语言&#xff1a;C/C是嵌入式系统最常用的编程语言之一&#xff0c;掌握这些语言的语法和特性可以帮助开发人员更好地理解嵌入式系…

What is `HttpServletRequestWrapper` does?

HttpServletRequestWrapper 是 Java Servlet API 中的一个类&#xff0c;作为 HttpServletRequest 接口的包装器&#xff08;Decorator&#xff09;实现。 该类设计为装饰者模式&#xff08;Decorator Pattern&#xff09;的一部分&#xff0c;允许开发人员通过包装现有的 Http…

【DP】53.最大子数组和

题目 法1&#xff1a;DP class Solution {public int maxSubArray(int[] nums) {if (nums null || nums.length 0) {return 0;}int n nums.length, res nums[0];int[] dp new int[n];dp[0] nums[0];for (int i 1; i < nums.length; i) {dp[i] Math.max(nums[i], d…

Orchestrator源码解读4-计划内切换

计划内切换 Graceful master promotion 通常因为升级&#xff0c;服务器为何等原因&#xff0c;需要按照计划将主库迁移到其他实例的情况。 计划内切换的拓扑结构改变的流程如下&#xff1a; orchestrator自己选或用户自己指定一个从库实例为新主库orchestrator将其他从库ch…

【江科大STM32合集】day2按键控制LED光敏传感器控制峰鸣器

【STM32合集】day2按键控制LED&光敏传感器控制峰鸣器 电路基础c语言基础main.ckey.c结果 实现一个键开关灯实验结果避坑 电路基础 运算放大器-在江科大51单片机b站视频&#xff08;AD/DA&#xff09;复习 原理&#xff1a;两个极端 同相输入端电压 》反相输入端 电压输出最…

【leetcode题解C++】707.设计链表

你可以选择使用单链表或者双链表&#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性&#xff1a;val 和 next 。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表&#xff0c;则还需要属性 prev 以指示链表中的上一个节点…

Git_01_push失败之解决办法

从本地服务器向云端服务器提交代码的过程中&#xff0c;碰到了以下问题&#xff1a; 提示账号没有push权限 rootlocalhost:~/repo/$ git push qnx HEAD:refs/for/develop Counting objects: 29, done. Delta compression using up to 32 threads. Compressing objects: 100% …

如何利用小程序介绍公司品牌形象?

企业小程序的建设对于现代企业来说已经成为了一项必不可少的工作。随着移动互联网的快速发展&#xff0c;越来越多的职场人士和创业老板希望通过小程序来提升企业形象&#xff0c;增强与用户的互动&#xff0c;实现更好的商业效果。在这个过程中&#xff0c;使用第三方制作平台…

排序算法-冒泡排序(含C语言代码示例)

一、算法介绍 冒泡排序是一种简单的排序算法&#xff0c;其核心思想是重复地遍历待排序列表&#xff0c;比较并交换相邻元素&#xff0c;使得较大的元素逐渐“冒泡”到列表的末尾&#xff0c;而较小的元素则逐渐上浮至列表的前端。该算法的名字源于类比元素的移动过程&#xff…

Java零基础教学文档第五篇:jQuery

今日新篇章 【jQuery】 【主要内容】 jQuery简介 jQuery安装 jQuery语法 jQuery选择器 jQuery事件处理 jQueryDOM操作 jQuery元素遍历 jQuery过滤 jQuery其它方法 【学习目标】 1.jQuery简介 1.1 jQuery简介 jQuery 库可以通过一行简单的标记被添加到网页中。 1.…

vue使用el-input监听不了回车事件解决方法

无法监听回车事件 <el-input v-model"password" type"password" placeholder"密码" keyup.enter"onLogin"></el-input> 在keyup.enter后加上’.native’ <el-input v-model"password" type"password…

国内镜像:极速下载编译WebRTC源码(For Android/Linux/IOS)(二十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

C语言实现双向循环链表

1.mj版本的双向循环链表(虚拟头节点) #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #define ELEMENT_NOT_FOUND -1 // 设置一个节点类 typedef struct Node {// 数据域int data;// 指针域struct Node* pre;struct Node* next; }Node; // 初…

Vue学习笔记5-- nextTick | Vue封装的过渡与动画

一、nextTick(tick-工作&#xff0c;起作用&#xff1b;下次起作用&#xff09; 语法&#xff1a; this.$nextTick(回调函数&#xff09;作用&#xff1a;在下一次DOM更新结束后执行其指定的回调。什么时候用&#xff1a;当改变数据后&#xff0c;要基于更新后的新DOM进行某些…

Linux修改文件名的三种方法分享

在Linux系统中&#xff0c;修改文件名是日常工作中常见的操作之一。无论是批量重命名文件还是修改单个文件名&#xff0c;掌握合适的方法可以提高工作效率。本文将分享三种常用的Linux修改文件名的方法&#xff0c;帮助您轻松应对文件管理任务。 方法一&#xff1a;使用mv命令 …