关于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 相关文章推荐
各浏览器对click方法的支持差异小结
Jul 31 Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 Javascript
js动态创建、删除表格示例代码
Aug 07 Javascript
浅析node.js中close事件
Nov 26 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
谈谈JavaScript自定义回调函数
Oct 18 Javascript
Bootstrap实现弹性搜索框
Jul 11 Javascript
微信小程序 input输入框详解及简单实例
Jan 10 Javascript
js 两个日期比较相差多少天的实例
Oct 19 Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 Javascript
vue实现带复选框的树形菜单
May 27 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
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
php实现文本数据导入SQL SERVER
2015/05/17 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python中的TCP socket写法示例
2018/05/11 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
初一生物教学反思
2014/01/18 职场文书
中药专业自荐信范文
2014/03/18 职场文书
初三开学计划书
2014/04/27 职场文书
技校毕业生自荐信
2014/06/03 职场文书
班级体育活动总结
2014/07/05 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
普宁寺导游词
2015/02/04 职场文书
拉贝日记观后感
2015/06/05 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server