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 相关文章推荐
aspx中利用js实现确认删除代码
Jul 22 Javascript
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
对jQuery的事件绑定的一些思考(补充)
Apr 20 Javascript
基于jQuery实现二级下拉菜单效果
Feb 01 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
Aug 10 Javascript
JavaScript闭包和范围实例详解
Dec 19 Javascript
javascript基于定时器实现进度条功能实例
Oct 13 Javascript
jQuery无冲突模式详解
Jan 17 jQuery
微信小程序中使用echarts的实现方法
Apr 24 Javascript
jQuery事件委托代码实践详解
Jun 21 jQuery
axios解决高并发的方法:axios.all()与axios.spread()的操作
Nov 09 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
解析CodeIgniter自定义配置文件
2013/06/18 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
Python实现多行注释的另类方法
2014/08/22 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
Python学习思维导图(必看篇)
2017/06/26 Python
获取Django项目的全部url方法详解
2017/10/26 Python
python复制文件到指定目录的实例
2018/04/27 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
运动会跳远广播稿
2014/02/04 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
美容院合作经营协议书
2014/10/10 职场文书
单位婚育证明范本
2014/11/21 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python