关于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 相关文章推荐
input、button的不同type值在ajax提交表单时导致的陷阱
Feb 24 Javascript
一个简单的javascript类定义例子
Sep 12 Javascript
基于jQuery的history历史记录插件
Dec 11 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
Sep 04 Javascript
js实现带农历和八字等信息的日历特效
May 16 Javascript
JavaScript对Json的增删改属性详解
Jun 02 Javascript
给easyui datebox扩展一个清空的实例
Nov 09 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
May 12 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
Layui 解决表格异步调用后台分页的问题
Oct 26 Javascript
基于脚手架创建Vue项目实现步骤详解
Aug 03 Javascript
vue如何使用rem适配
Feb 06 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 中的批处理的实现
2007/06/14 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
Python实现端口复用实例代码
2014/07/03 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Python反转序列的方法实例分析
2018/03/21 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
django-csrf使用和禁用方式
2020/03/13 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
交通安全教育制度
2014/02/02 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
董事长新年致辞
2015/07/29 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python