解决VUE-Router 同一页面第二次进入不刷新的问题


Posted in Javascript onJuly 22, 2020

最近正好遇到一个问题,修改用户的头像,修改后再进入用户主页,发现改了之后即使数据变了。。页面也不会重新渲染。。。

下面提供几种解决方案来给予大家参考:

1. 可以在刷新的页面定义一个参数, 这样每次都会渲染出不同的页面:

route 实例化命名配置:

{
   // 用户信息
   path: '/accountDetail/:randKey',
   name: 'accountDetail',
   component: accountDetail,
   meta: {requiresAuth: true}
 },

跳转 的地方配置:

var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
 var maxLength = 15;
    var res = '_jsonpphotochange';
    for (var i = 0; i < maxLength; i++) {
      var id = Math.ceil(Math.random() * 35);
      res += chars[id];
    }
    // res 为随机字符串,下面是跳转:
 this.$router.push('/accountDetail/' + paramsAccount);

2. 可以让全局的页面都重载,这个比较狠冗余也多,慎重点用:

在App.vue下修改:

<template>
 <div id="app" class="app">
  <transition :key="key">
  <router-view class="router-view"></router-view>
  </transition>
 </div>
 </template>
 <script type="text/ecmascript-6">
 // import {mapState} from 'vuex';
 export default {
  name: 'app',
  computed: {
  key() {
   return this.$route.name !== undefined ? this.$route.name + new Date() : this.$route + new Date();
  }
  }
 };
 </script>
// 就是在template下加一对标签<transition></transition> 加上key的属性,不过官网说 如果防止组件的复用就用这个 还是比较推荐这个方法的。

3. watch 来检测路由变化。。缺点是,有时候会莫名出现 点两次的情况,也就是你要跳转会跳转两次。。有人说是进来会执行一次跳转回执行一次,不过我觉得不太像。。希望有能人士指点。。:

watch: {
 '$route' (to, from) {
  this.httpGetUserInfo(); // 这是我ajax获取用户信息的方法
 }
 }
// 这样每次路由执行就会运行这个方法,第一次打开不会运行,你需要用created()方法来执行下ajax方法。

补充知识:vue页面跳转parmas传参之刷新页面参数丢失问题解决方法

说在前面:

今天遇到一个问题,通过vue的parmas传参,跳转到相应页面后,F5刷新传过来的参数就会消失。尝试改成query传参,但由于项目的路由不能带参数,不然刷新会找不到页面。百度了很长时间,尝试了很多次,最后找到了一个方法,记一下,以备以后需要。(主要是实在搞不懂vuex 感觉还是local storage好理解一些。。。)

1.utils文件夹下新建localstorage.js文件

解决VUE-Router 同一页面第二次进入不刷新的问题

2.在需要保存值的文件里引入localstorage.js并通过db.save进行保存数据

解决VUE-Router 同一页面第二次进入不刷新的问题

3.在跳转到的页面引入localstorage.js并通过db.get获取数据

解决VUE-Router 同一页面第二次进入不刷新的问题

以上这篇解决VUE-Router 同一页面第二次进入不刷新的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现图片拖动改变顺序附图
May 13 Javascript
js数组的操作指南
Dec 28 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
js实现分割上传大文件
Mar 09 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
js手机号批量滚动抽奖实现代码
Apr 17 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
JS如何寻找数组中心索引过程解析
Jun 01 Javascript
Vue3不支持Filters过滤器的问题
Sep 24 Javascript
js实现查询商品案例
Jul 22 #Javascript
vue element 关闭当前tab 跳转到上一路由操作
Jul 22 #Javascript
eslint+prettier统一代码风格的实现方法
Jul 22 #Javascript
解决vue-router 切换tab标签关闭时缓存问题
Jul 22 #Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 #Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 #Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 #Javascript
You might like
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
Python 第一步 hello world
2009/09/25 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
Python如何调用JS文件中的函数
2019/08/16 Python
python实现KNN分类算法
2019/10/16 Python
python eventlet绿化和patch原理
2020/11/21 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
党员承诺践诺书
2014/05/20 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers