vue中,在本地缓存中读写数据的方法


Posted in Javascript onSeptember 21, 2018

1.安装good-storage插件

cnpm i good-storage --save

2.读/写的方法

common/js/cache.js:

import storage from 'good-storage'

const SEARCH_KEY = '__search__'
const SEARCH_MAX_LENGTH = 15

// compare:findindex传入的是function,所以不能直接传val
function insertArray(arr, val, compare, maxLen) {
 const index = arr.findIndex(compare)
 if (index === 0) {
 return
 }
 if (index > 0) {
 arr.splice(index, 1)
 }
 arr.unshift(val) // 插入到数组最前
 if (maxLen && arr.length > maxLen) {
 arr.pop() // 删除末位元素
 }
}

// 存储搜索历史
export function saveSearch(query) {
 let searches = storage.get(SEARCH_KEY, [])
 insertArray(searches, query, (item) => {
 return item === query
 }, SEARCH_MAX_LENGTH)
 storage.set(SEARCH_KEY, searches)
 return searches
}
// 加载本地缓存的搜索历史
export function loadSearch() {
 return storage.get(SEARCH_KEY, [])
}

3.数据用vuex传递

在store/actions.js中写入数据:

import * as types from './mutation-types'
import {saveSearch} from 'common/js/cache'

export const saveSearchHistory = function({commit, state}, query) {
 commit(types.SET_SEARCH_HISTORY, saveSearch(query))
}

4.组件中调用vuex

import {mapActions} from 'vuex'

// methods内:
 saveSearch() {
  this.saveSearchHistory(this.query)
 },
 ...mapActions([
  'saveSearchHistory'
 ])

以上这篇vue中,在本地缓存中读写数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用javascript/jquery对上传文件格式过滤的方法
Jul 25 Javascript
10个基于Jquery的幻灯片插件教程
Oct 29 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
May 19 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
Apr 04 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
vue 本地环境跨域请求proxyTable的方法
Sep 19 Javascript
Vue自定义组件的四种方式示例详解
Feb 28 Javascript
vue点击按钮实现简单页面的切换
Sep 08 Javascript
JavaScript canvas实现雨滴特效
Jan 10 Javascript
使用refresh_token实现无感刷新页面
Apr 26 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 #Javascript
vue集成百度UEditor富文本编辑器使用教程
Sep 21 #Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 #Javascript
vue 弹框产生的滚动穿透问题的解决
Sep 21 #Javascript
vue-quill-editor富文本编辑器简单使用方法
Sep 21 #Javascript
探秘vue-rx 2.0(推荐)
Sep 21 #Javascript
Vue-Quill-Editor富文本编辑器的使用教程
Sep 21 #Javascript
You might like
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
apache php模块整合操作指南
2012/11/16 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
Python 2与Python 3版本和编码的对比
2017/02/14 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
python实现海螺图片的方法示例
2019/05/12 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Python pip使用超时问题解决方案
2020/08/03 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
实习生个人找工作的自我评价
2013/10/30 职场文书
总经理职责范文
2013/11/08 职场文书
财务稽核岗位职责
2015/04/13 职场文书
雾霾停课通知
2015/04/24 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
小学运动会入场词
2015/07/18 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
go设置多个GOPATH的方式
2021/05/05 Golang
python实现A*寻路算法
2021/06/13 Python
Java 多态分析
2022/04/26 Java/Android
Python使用永中文档转换服务
2022/05/06 Python