Vue2.0 实现页面缓存和不缓存的方式


Posted in Javascript onNovember 12, 2019

1、在app中设置需要缓存的div

<keep-alive>//缓存的页面
  <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>//不缓存的页面

2、在路由router.js中设置.vue页面是否需要缓存

{
  path: '/home',
  component: home,
  meta: { keepAlive: true },//当前的.vue文件需要缓存
},
{
  path: '/notice',
  component: notice,//当前页面不需要缓存
}

3、从缓存页面跳转到不缓存页面,或者从不缓存页面跳转到缓存页面的时候,会发现watch是不能监听路由的,是因为缓存和不缓存页面分别在不同的div里面,一个div里面是不可能监听到另一个div的路由的,所有需要把监听的路由都加上缓存(在路由添加 meta: { keepAlive: true }),路由在缓存页面之间进行跳转的时候,就可以通过监听路由来进行判断数据是否需要更新。

vue keep-alive 缓存后, 进入缓存页需要再次更新

beforeRouteEnter (to, from, next) {
 next (vm => {
   vm.getData()
 })
},
 mounted: function () {
  this.getData()
}

keep-alive 数据更新问题

在项目中使用<keep-alive>包含<router-view>实现页面缓存,加速页面加载,

同时,这种方式带来一些弊端,请看如下大神解释:

****************************************************************************

当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。

当再次进入(前进或者后退)时,只触发activated。

****************************************************************************

这就带来一个问题,之前在项目中使用mounted在页面加载时获取数据,使用<keep-alive>后方法不再生效,

根据上面的解释,将mounted替换为activated即可。

以上这篇Vue2.0 实现页面缓存和不缓存的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE FF OPERA都可用的弹出层实现代码
Sep 29 Javascript
JavaScript内存管理介绍
Mar 13 Javascript
js实现显示当前状态的导航效果代码
Aug 28 Javascript
Javascript中的迭代、归并方法详解
Jun 14 Javascript
js 获取当前web应用的上下文路径实现方法
Aug 19 Javascript
微信小程序-getUserInfo回调的实例详解
Oct 27 Javascript
Vue中使用sass实现换肤功能
Sep 07 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
JS简单数组排序操作示例【sort方法】
May 17 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
Vue页面切换和a链接的本质区别详解
Nov 12 #Javascript
vue 中几种传值方法(3种)
Nov 12 #Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 #Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
Nov 12 #Javascript
vue.js 实现a标签href里添加参数
Nov 12 #Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 #Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 #Javascript
You might like
如何做到多笔资料的同步
2006/10/09 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
php广告加载类用法实例
2014/09/23 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
python集合类型用法分析
2015/04/08 Python
Python实现读取并保存文件的类
2017/05/11 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python中使用print输出中文的方法
2018/07/16 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
升国旗仪式主持词
2014/03/19 职场文书
捐款活动总结
2014/08/27 职场文书
民事赔偿协议书
2014/11/02 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL