vue 判断页面是首次进入还是再次刷新的实例


Posted in Javascript onNovember 05, 2020

我就废话不多说了,大家还是直接看代码吧~

<template>
  <div>
   判断页面是首次进入还是再次刷新
  </div>
</template>
 
 <script>
export default {
  data(){
    return{
       
       }
    },
 
  mounted () {
   //第一种方法
   // if(window.name == ""){
   // console.log("首次被加载");
   // window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值 
   // }else if(window.name == "isReload"){
   // console.log("页面被刷新");
   // }
   //第二种方法
   if (window.performance.navigation.type == 1) {
    console.log("页面被刷新")
   }else{
    console.log("首次被加载")
   }
  },
 
  methods: {
   
  },
 
  }
</script> 

<style scoped> 
</style>

补充知识:VUE-Router 同一页面第二次进入不刷新 问题以及几个解决方案

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

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

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 判断页面是首次进入还是再次刷新的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript各浏览器中option元素的表现差异
Apr 07 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
Sep 26 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
Aug 15 Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
HTML5 canvas 9绘制图片实例详解
Sep 06 Javascript
js实现5秒倒计时重新发送短信功能
Feb 05 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
基于webpack4+vue-cli3项目实现换肤功能
Jul 17 Javascript
nuxt配置通过指定IP和端口访问的实现
Jan 08 Javascript
JavaScript实现点击自制菜单效果
Feb 02 Javascript
react如何快速设置文件路径别名
Apr 28 Javascript
vue created钩子函数与mounted钩子函数的用法区别
Nov 05 #Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
Nov 05 #Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 #Javascript
如何利用vue实现波谱拟合详解
Nov 05 #Javascript
关于Vue中$refs的探索浅析
Nov 05 #Javascript
JavaScript 实现轮播图特效的示例
Nov 05 #Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 05 #Javascript
You might like
网友原创的PHP模板类代码
2008/09/07 PHP
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
php图像验证码生成代码
2017/06/08 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
python中sys.argv函数精简概括
2018/07/08 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python excel转换csv代码实例
2019/08/26 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
编辑求职信样本
2013/12/16 职场文书
体育运动口号
2014/06/09 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
会计工作总结范文2014
2014/12/23 职场文书
发布会邀请函
2015/01/31 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
Django框架模板用法详解
2022/06/10 Python