vue2.0页面前进刷新回退不刷新的实现

花了整整一周时间,尝试过很多种方法,终于找到了最佳的解决方案(对我来说最佳),为了祭奠逝去的一周,也为了释放激动的情绪,现在不得不写篇博客了。

直接上重点:

第一步:

//在APP.vue里面写上keepalive,可以实现缓存(keep-alive是什么?查看官方文档)

第二步:

//在router的index.js里面给需要缓存的页面加上meta参数

第三步:

//在APP.vue里面写,当页面路由发生变化时,将相应页面的滚动位置记录下来,在页面updated时读取并赋值

第四步:

//因为我的想法是从首页(index.vue)进入列表页时刷新数据,从列表页点击进入详情页,再返回列表页时不刷新,

所以从首页进入列表页时,将列表页的isBack设置为false,

然后在列表页的activated生命周期钩子中判断isBack,为false则执行加载函数,为true则使用缓存。

//index.vue中:

//list.vue中

至此,终于完美实现了效果,其实还有可优化的地方,加入需要keepalive的页面很多的话,每一个页面都写相同的beforeRouteLeave和activated就没有必要了,

但是具体怎么优化,等需要用到了再说吧。

原文地址:https://www.cnblogs.com/huansha-00/p/9395034.html

时间: 2024-10-10 03:52:45

vue2.0页面前进刷新回退不刷新的实现的相关文章

vue2.0 移动端,下拉刷新,上拉加载更多插件,修改版

在[实现丰盛]的插件基础修改[vue2.0 移动端,下拉刷新,上拉加载更多 插件], 1.修改加载到尾页面,返回顶部刷新数据,无法继续加重下一页 2.修改加载完成文字提示 原文链接:http://www.cnblogs.com/sichaoyun/p/6647458.html <template lang="html"> <div class="yo-scroll" :class="{'down':(state===0),'up':(st

vue2.0 移动端,下拉刷新,上拉加载更多 插件

本人正在基于 vue2.0 + webpack + es6 搭建前端架构,整理了部分插件,下面这个是下拉更新 上拉更多的,挺好用的,分享给大家. 直接上代码,不懂的多看几遍,下面我换会告诉大家如何使用. <template lang="html"> <div class="yo-scroll" :class="{'down':(state===0),'up':(state==1),refresh:(state===2),touch:tou

vue2.0 页面A跳转到页面B,B页面停留在A页面的滚动位置的解决方法

如果页面A沿Y轴滚动一段距离,然后跳转到页面B: 在进入B页面时,B页面已经滚到页面A的距离,返回页面A,发现A还在之前的滚动位置: 这样体验就很不好,所以我们要进行一些处理: 我的方法是:在路由守卫回调中,设置每次进入路由时,将window的scroll值设置为0:window.scroll(0, 0);代码如下 // 全局路由守卫 router.beforeEach((to, from, next) => { // to: Route: 即将要进入的目标 路由对象 // from: Rout

打开页面自动刷新网页,自动刷新当前页面,JS调用

reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过"前进"和"后退"来访问已经被替换

页面刷新之定时刷新(定时器,meta)

测试页面的代码见上一篇博客 接下来进入正题-定时不断刷新页面的方法: 1.看到定时,很容易想到js的定时器: 1 //第一种方法 2 //由于我们已经有了一个定时器,所以只要在定时器test中加入一句刷新页面的代码即可 3 function test(){ 4 h1.style.color = "red"; 5 h1.innerText = "我变化了"; 6 history.go(0);//可以换成上一篇博客的任何一种方法. 7 } 8 setInterval(t

JS刷新页面总和!多种JS刷新页面代码!

1)<meta http-equiv="refresh"content="10;url=跳转的页面">10表示间隔10秒刷新一次2)<script language=''javascript''>window.location.reload(true);</script>如果是你要刷新某一个iframe就把window给换成frame的名字或ID号3)<script language=''javascript''>wi

react+antd分页 实现分页及页面刷新时回到刷新前的page

antd框架地址:https://ant.design/index-cn 利用antdUI框架做了个分页,其他功能都没问题,但是页面跳转后刷新会回到第一页,经过学习,在组件里增加了hash值,详情请看代码,实现了页面跳转后刷新依然显示刷新前的页面. import React from 'react' import { Pagination, Spin } from 'antd' //引入分页组件 import 'whatwg-fetch' import './agricultural.less'

03 页面刷新和表格刷新

表格赋予id var table = layui.table; table.render({ elem: '#test' ,url:'http://localhost:7300/mock/5e06d6ef83b40c266813ee7f/example/user/list' ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板 ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标.如无

利用fastjson解析json并通过js&amp;ajax实现页面的无跳转刷新

1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一个web项目,这是我的项目:我这里直接用servlet写的 注意导包,我这里到了很多无用的包,其实主要的包是下面几个: 这个三个包是必须的,其他都是开发基本web的常用包 3.创建一个domain: package com.keson.domain; import com.thoughtworks.