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 相关文章推荐
超级强大的表单验证
Jun 26 Javascript
如何用javascript控制上传文件的大小
Oct 26 Javascript
超清晰的document对象详解
Feb 27 Javascript
js利用div背景,做一个竖线的效果。
Nov 22 Javascript
jQuery 使用手册(二)
Sep 23 Javascript
说明你的Javascript技术很烂的五个原因
Apr 26 Javascript
String.prototype实现的一些javascript函数介绍
Nov 22 Javascript
EasyUI创建对话框的两种方式
Aug 23 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
vue学习笔记之slot插槽基本用法实例分析
Feb 01 Javascript
JS删除对象中某一属性案例详解
Sep 08 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
Jan 27 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
PHP文件下载类
2006/12/06 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
js post提交调用方法
2014/02/12 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python实现的自定义多线程多进程类示例
2018/03/23 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
Django model select的多种用法详解
2019/07/16 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
WSDL的操作类型主要有几种
2013/07/19 面试题
幼儿园的门卫岗位职责
2014/04/10 职场文书
2014年法务工作总结
2014/12/11 职场文书
详解NodeJS模块化
2021/06/15 NodeJs
springboot如何初始化执行sql语句
2021/06/22 Java/Android
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers