vuex持久化 , vuex-persistedstate_vuex-persistedstate whitelist-程序员宅基地

技术标签: 笔记  1024程序员节  vue  vue-cli3  

目录

Vue持久化

实现步骤

具体代码

更改本地储存方式


Vue持久化

  • 在开发的过程中,像用户信息(名字,头像,token)需要vuex中存储且需要本地存储,再例如,购物车如果需要未登录状态下也支持,如果管理在vuex中页需要存储在本地
  • 为什么采取这个方案(保留本地一份,vuex存储一份)
  • vuex
    • 基于内存的方案 存取速度特别快 基于vuex模式使用特别方便
    • 缺点是刷新就会丢失
  • 本地储存
    • 基于磁盘的方案 存取速度缓慢 操作起来没有vuex方便
    • 优点是刷新不丢失
  • 场景 : 即想要vuex存取速度快和vuex配合灵活 还想要刷新不丢失

实现步骤

  • 安装vuex-persistedstate插件
  • vuex中准备user模块和cart模块
  • 将插件配置到vuex的plugins选项中 , 配置user模块和cart模块进行状态持久化
  • 修改state数据就会触发自动同步机制 , 修改一下数据检测是否同步成功

具体代码

  • 在src/store文件夹下新建modules文件, 在modules下新建user.js和cart.js
  • // 用户状态
    export default {
      namespaced: true,
      state: () => ({
        // 个人用户信息
        profile:{
            id: '',
            nickname: '',
            avatar: '',
            token: '',
            mobile: '' 
        }
      })
    }
  •          
    // 购物车状态
    export default {
      namespaced: true,
      state: () => ({
          list:[]
      })
    }
  •  在src/store/index.js中导入user模块和cart模块
  • import { createStore } from 'vuex'
    
    import user from './modules/user'
    import cart from './modules/cart'
    
    export default createStore({
      modules: {
        user,
        cart
      }
    })
  •  使用vuex-persistedstate插件来进行持久化
  • import { createStore } from 'vuex'
    import createPersistedstate from 'vuex-persistedstate'
    
    import user from './modules/user'
    import cart from './modules/cart'
    
    export default createStore({
      modules: {
        user,
        cart
      },
      plugins: [
        createPersistedstate({
          key: 'erabbit-client-pc-store',
          paths: ['user', 'cart']
        })
      ]
    })

更改本地储存方式

  • 默认的本地储存为localStorage , 如何修改为Cookie方式
  • 第一步 下载js-cookie包
  • 第二步引入包
  • 第三步在vuex里plugins进行配置
  • import { createStore } from 'vuex'
    import createPersistedstate from 'vuex-persistedstate'
    import user from './modules/user'
    import cart from './modules/cart'
    // 引入包
    import * as Cookies from 'js-cookie'
    export default createStore({
      state: {
      },
      mutations: {
      },
      actions: {
      },
      modules: {
        user,
        cart
      },
      // vuex + 本地储存 插件配置
      // plugins: [
      //   createPersistedstate({
      //     key: 'erabbit-client-pc-store', // 本地储存 键值对的形式
      //     paths: ['user', 'cart']
      //   })
      // ]
      // 进行配置
      plugins: [
        createPersistedstate({
          key: 'erabbit-client-pc-store', // 本地储存 键值对的形式
          paths: ['user', 'cart'],
          storage: {
            getItem: key => Cookies.get(key),
            setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
            removeItem: key => Cookies.remove(key)
          }
        })
      ]
    })
    
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44051639/article/details/121478066

智能推荐

stable-diffusion的webui和comfyuig共享模型路径_comfyui共用webui模型-程序员宅基地

文章浏览阅读4.4k次。2.将base_path: path/to/stable-diffusion-webui/修改成你的/stable-diffusion-webui安装路径(例如:base_p: D:/stable-diffusion-webui)1.修改上图extra_model_paths.yaml.example为extra_model_paths.yaml。_comfyui共用webui模型

在python中输入10个整数并求出最大值_python练习题 :用户任意输入10个整数到列表中,然后由大到小排列并输出。...-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏46次。一:填空题:1.python是一种面向_对象 __的高级语言。2.python可以在多种平台运行,这体现了python的___可移植___特性。3.python源代码被解释器转换后的格式为___.pyc______。4.python3.x默认使用的编码是_UTF-8________。5.如果想测试变量的类型,可以使用___type()_____来实现。6.8.57E5表示的数是___8.57*10..._python输入10个大于0的整数,找出最大的数,并且计算出它出现的次数

python爬取网易云音乐飙升榜音乐_Python爬虫实战,30行代码轻松爬取网易云音乐热歌榜...-程序员宅基地

文章浏览阅读1.3k次。在开始讲解思路之前,我们首先了解下网络状态码,为什么要看这个呢?以后你会回来感谢我的,嘻嘻!一般网络状态有以下几种:200(成功)服务器成功处理了请求。一般来说,这意味着服务器提供所请求的页面,如果您看到此状态,您的robots.txt文件,这意味着Googlebot的检索成功。301(永久移动)请求的网页已永久移动到新的位置,当服务器返回此响应(作为一个GET或HEAD请求的响应),它会自动转发..._抓取网易云音乐,飙升榜中的第一首歌曲把他给我抓取到本地

腾讯云COS - 前端上传文件到 COS 跨域问题_腾讯云 cos 连接提示跨域-程序员宅基地

文章浏览阅读682次,点赞14次,收藏2次。腾讯云COS - 前端上传文件到 COS 跨域问题_腾讯云 cos 连接提示跨域

在使用pyrcc5编译二进制文件出现错误Cannot find file:和pyrcc5: "No resources in resource description."-程序员宅基地

文章浏览阅读8.7k次。1、文件的路径为英文路径,中文路径不可以2、确定正确配置pyrcc3、就是资源文件的位置要放在当前项目下,不然会出现错误经过以上步骤,正确编译二进制文件apprcc.qrc文件的格式为<rcc version='1.0'> <qresource> </qresource></rcc>导入文件路径后..._no resources in resource description.

mysql --batch_mysql executeBatch批量提交数据,varchar字段内容带(")双引号-程序员宅基地

文章浏览阅读118次。java利用PreparedStatement批量提交数据后,表中所有的varchar类型字段内容均被加上了双引号,如图:处理代码:sql = "INSERT INTO tbvoscdr VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";PreparedStatement psts = conn.prepareS..._两个双引号+varchar

随便推点

springboot MVC多对象接受前端传参方式_springboot请求入参两个对象-程序员宅基地

文章浏览阅读571次。springboot MVC多对象接受前端传参方式_springboot请求入参两个对象

好调剂的计算机类工科学校,B区最好调剂的5所工科院校,过线就能入选,性价比高,工科生可选...-程序员宅基地

文章浏览阅读1.2w次。2021考研国家线出来后,很多考A区的考生,或因这样那样的原因没有成功进入复试,而且分数又不算太高的话,可以调剂到B区,因为B区的211高校仅有9所,大家都往这9所调剂,导致调剂分数水涨船高,难度极大,那么如果是工科专业的话,可以调剂到B区这5所工科院校,性价比比较高。桂林电子了科技大学桂电作为我国四所电子科大中的一所,虽说位居第4,但由于其专业都很热门,在广西高校排名在第三或者第四的位置,主打的..._b区计算机好调剂的

前序遍历、中序遍历、后序遍历、层序遍历-程序员宅基地

文章浏览阅读1.7w次,点赞11次,收藏30次。根据遍历画图先根据中序和前序找到每一级的所有根========最近也是在准备笔试,由于没有系统的学过数据结构,所以每次在考到二叉树的遍历的时候都是直接跪,次数多了也就怒了,前些天也是准备论文没时间整这些,现在提交了,算是稍微轻松点了,所以花了半天的时间来学了下二叉树。现在记下来,以便后序查阅。一、二叉树的遍历概念 1. 二叉树的遍历是指从根结点触发,按照某种次序依次访问二叉树中所有结点,使..._前序遍历

java awt swing控件,下拉内容,自适应宽度_swing 菜单自动大小-程序员宅基地

文章浏览阅读1k次。1.使用集成复写父类方法的方式进行下拉宽度修改DefaultComboBox 继承JComboBox。3.计算下拉框内容宽度,并获取最大宽度。2.修改下拉画布宽度。_swing 菜单自动大小

Unity 五子棋游戏设计和简单AI(2)_mctsnode 五子棋 unity-程序员宅基地

文章浏览阅读1.6k次。Unity 五子棋胜负条件判断_mctsnode 五子棋 unity

解决Flask使用flask-sqlalchemy链接Mysql数据库创建表的坑_flask-sqlalchemy 创建数据库-程序员宅基地

文章浏览阅读400次,点赞3次,收藏3次。Flask使用flask-sqlalchemy链接Mysql数据库创建表得坑第一步: pip install flask-sqlalchemy -i https://pypi.douban.com/simple第二部:直接上代码。_flask-sqlalchemy 创建数据库