关于vue路由缓存清除在main.js中的设置


Posted in Javascript onNovember 06, 2019

1.main.js

/* 页面数据缓存 */
var _CACHE_OBJS = {};
 
function _init_cache(comp, key, cache) {
 var obj = cache[key];
 if (obj !== undefined) {
 comp[key] = obj;
 }
 var deep = typeof comp[key] === 'object';
 comp.$watch(key,
 function (val) {
  //console.log("page " + key + " updated");
  cache[key] = val;
 }, {
  deep: deep
 });
}
 
 
var _PAGE_CACHE = {
 /*
 * 初始化页面缓存数据
 * comp: 当前页面component 对象
 * path: 当前页面vue router path
 * data: 需要缓存的数据对象名称,或名称数组
 */
 cache: function (comp, path, data) {
 if (data == '' || data == undefined || data == null) {
  data = restore(comp._data);
 }
 var cache = _CACHE_OBJS[path];
 if (cache === undefined) {
  cache = {};
  _CACHE_OBJS[path] = cache;
 }
 if (typeof data == 'string') {
  _init_cache(comp, data, cache);
 } else {
  var i;
  for (i = 0; i < data.length; ++i) {
  _init_cache(comp, data[i], cache);
  }
 }
 console.log(_CACHE_OBJS, "页面数据缓存");
 },
 
 /* 清除页面缓存 */
 clear: function (path) {
 delete _CACHE_OBJS[path];
 },
 
 /* 清空所有缓存数据 */
 reset: function () {
 //console.log("reset page cache");
 _CACHE_OBJS = {};
 },
 /*根据path查看当前页面缓存是否存在*/
 has_cache: function (path) {
 return _CACHE_OBJS[path] !== undefined && !isEmptyObject(_CACHE_OBJS[path]);
 }
};
 
Vue.prototype.$cache = _PAGE_CACHE;
/* eslint-disable no-new */
 
var restore = function (vueObject) {
 var result = [];
 for (var index in vueObject) {
 result.push(index);
 }
 return result;
};
 
var isEmptyObject = function (obj) {
 for (var key in obj) {
 return false;
 }
 return true;
}

以上这篇关于vue路由缓存清除在main.js中的设置就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 解析xml文件
Aug 09 Javascript
JS鼠标事件大全 推荐收藏
Nov 01 Javascript
jQuery load方法用法集锦
Dec 06 Javascript
jquery ajax请求实例深入解析
Nov 26 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
Jan 11 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
Apr 08 Javascript
Bootstrap中CSS的使用方法
Feb 17 Javascript
js下将金额数字每三位一逗号分隔
Feb 19 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
Mar 05 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
Apr 20 Javascript
js前端如何写一个精确的倒计时代码
Oct 25 Javascript
js实现旋转木马轮播图效果
Jan 10 Javascript
JS实现随机抽取三人
Nov 06 #Javascript
Node对CommonJS的模块规范
Nov 06 #Javascript
VUE 组件转换为微信小程序组件的方法
Nov 06 #Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
Nov 05 #Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 #Javascript
js+html实现点名系统功能
Nov 05 #Javascript
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 #Javascript
You might like
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP实现微信退款功能
2018/10/02 PHP
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
音乐专业应届生教师求职信
2013/11/04 职场文书
体育教育专业毕业生自荐信
2013/11/15 职场文书
文化宣传方案
2014/03/13 职场文书
自主招生教师推荐信
2014/05/10 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js