关于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 相关文章推荐
JS实现定时页面弹出类似QQ新闻的提示框
Nov 07 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 Javascript
JS小游戏之极速快跑源码详解
Sep 25 Javascript
less简单入门(CSS 预处理语言)
Mar 08 Javascript
vue实现单选和多选功能
Aug 11 Javascript
javascript流程控制语句集合
Sep 18 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
Sep 14 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
深入学习JavaScript 高阶函数
Jun 11 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
Apr 26 Javascript
js实现搜索提示框效果
Sep 05 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
Feb 25 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 &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
分享别人写的一个小型js框架
2007/08/13 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
AngularJS基础知识
2014/12/21 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python实现读写INI配置文件的方法示例
2018/06/09 Python
python excel转换csv代码实例
2019/08/26 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
Python中有几个关键字
2020/06/04 Python
生产车间实习自我鉴定
2013/09/23 职场文书
自主招生自荐信范文
2013/12/04 职场文书
学前教育学生自荐信范文
2013/12/31 职场文书
中式婚礼主持词
2014/03/13 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
教师个人读书活动总结
2014/07/08 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
小学生成绩单评语
2014/12/31 职场文书
追讨欠款律师函
2015/05/27 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python