关于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 相关文章推荐
JavaScript的9个陷阱及评点分析
May 16 Javascript
jquery ajax提交表单数据的两种方式
Nov 24 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
Mar 04 Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
WebView启动支付宝客户端支付失败的问题小结
Jan 11 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 Javascript
基于Vue实现平滑过渡的拖拽排序功能
Jun 12 Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 Javascript
vue实现配置全局访问路径头(axios)
Nov 01 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
PHP安全配置
2006/10/09 PHP
PHP5 安装方法
2007/01/15 PHP
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
JS实现小星星特效
2019/12/24 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
安全标准化汇报材料
2014/02/03 职场文书
舞蹈比赛获奖感言
2014/02/04 职场文书
大学军训感言200字
2014/02/26 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
公务员检讨书
2014/11/01 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS