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 相关文章推荐
jquery 分页控件实现代码
Nov 30 Javascript
JQuery+DIV自定义滚动条样式的具体实现
Jun 25 Javascript
angularjs表格ng-table使用备忘录
Mar 09 Javascript
jQuery遍历DOM节点操作之filter()方法详解
Apr 14 Javascript
javascript中活灵活现的Array对象详解
Nov 30 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
Sep 20 Javascript
Node.js自定义实现文件路由功能
Sep 22 Javascript
JS document对象简单用法完整示例
Jan 14 Javascript
微信小程序复选框实现多选一功能过程解析
Feb 14 Javascript
Vue实现点击导航栏当前标签后变色功能
Aug 19 Javascript
Vue自定义多选组件使用详解
Sep 08 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 23 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 分页函数multi() discuz
2009/06/21 PHP
Symfony核心类概述
2016/03/17 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
利用python写个下载teahour音频的小脚本
2017/05/08 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Python3+Appium安装使用教程
2019/07/05 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
高级Java程序员面试要点
2013/08/02 面试题
农村婚礼证婚词
2014/01/10 职场文书
操行评语大全
2014/04/30 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
教师师德承诺书2016
2016/03/25 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
MySQL 原理与优化之Update 优化
2022/08/14 MySQL