关于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 检测浏览器和操作系统的脚本
Dec 26 Javascript
form表单只提交数据而不进行页面跳转的解决方案
Sep 18 Javascript
js实现顶部可折叠的菜单工具栏效果实例
May 09 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
May 16 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
使用Bootstrap打造特色进度条效果
May 02 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
Jun 12 Javascript
javascript ES6 新增了let命令使用介绍
Jul 07 Javascript
微信小程序自定义模态对话框实例详解
Aug 16 Javascript
jQuery实现评论模块
Aug 19 jQuery
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实现博客,论坛图片防盗链的方法
2016/10/15 PHP
总结一些js自定义的函数
2006/08/05 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
使用JS动态显示文本
2017/09/09 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
python中list常用操作实例详解
2015/06/03 Python
详解Python Socket网络编程
2016/01/05 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python版百度语音识别功能
2019/07/09 Python
Python单元测试与测试用例简析
2019/11/09 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
历史学专业推荐信
2013/11/06 职场文书
大学军训感言300字
2014/03/09 职场文书
二年级学生评语大全
2014/04/23 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
运动会表扬稿范文
2015/05/05 职场文书
教导处教学工作总结
2015/08/12 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers