解决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 相关文章推荐
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
javascript 延迟加载技术(lazyload)简单实现
Jan 17 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
jquery UI Datepicker时间控件冲突问题解决
Dec 16 Javascript
Vue弹出菜单功能的实现代码
Sep 12 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
Jun 07 Javascript
vue 的 solt 子组件过滤过程解析
Sep 07 Javascript
JS如何定义用字符串拼接的变量
Jul 11 Javascript
ECharts transform数据转换和dataZoom在项目中使用
Dec 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
vue.js中created方法作用
2018/03/30 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
为什么说python适合写爬虫
2020/06/11 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
英国现代绅士品牌:Hackett
2017/12/17 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
软件测试面试题
2015/10/21 面试题
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
学校十一活动方案
2014/02/01 职场文书
继承权公证书
2014/04/09 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
mysql 排序失效
2022/05/20 MySQL