首页 > 其他分享 >Vue数据存储及vuex状态管理

Vue数据存储及vuex状态管理

时间:2023-02-21 21:25:44浏览次数:36  
标签:存储 Vue sessionStorage state localStorage userinfo vuex

Vue数据存储及vuex状态管理

我们想要往浏览器客户端存储数据,有三种方式:

  • localStorage —— 存储到本地,浏览器重新开数据还存在
  • sessionStorage —— 存储到浏览器应用,浏览器关闭数据就消失
  • cookie —— 存储到本地的cookie,但是有失效时间,且vue中要借助第三方插件设置

Vue数据存储的三种方式

localStorage

默认永久存储在本地

// 按kv存储
localStorage.setItem('userinfo', JSON.stringify(this.userInfo))
// 按k取出v
localStorage.getItem('userinfo')
localStorage.clear()  // 清空全部
localStorage.removeItem('userinfo') 

注意,存储的键值都只能是字符串,如果想存对象,那就得先序列化,为了统一存储和取出的过程,建议都使用序列化存储或更多加密解密措施。

sessionStorage

关闭浏览器时会自动清理

// 按kv存储
sessionStorage.setItem('userinfo', JSON.stringify(this.userInfo))
// 按k取出v
sessionStorage.getItem('userinfo')
sessionStorage.clear()  // 清空全部
sessionStorage.removeItem('userinfo') 

设置cookie借助第三方插件

过期时间内存储在本地,到过期时间自动清理

有很多第三方模块可供使用,这里使用vue-cookies插件:

cnpm i vue-cookie

使用:

cookies.set('userinfo', JSON.stringify(this.userInfo))  // 按kv设置
cookies.get('userinfo')  // 按k取v
cookies.delete('userinfo')

vuex状态管理

vuex应用面

  1. 全局状态管理,可以将一组数据、方法集中到一个插件中管理,利好组件间通信
  2. 数据多级处理,在一组数据的处理上,我们可以选择不同层级的处理方式,满足各组件对数据共享的实际过程差异化。

image-20230221205016831

vuex依赖

vuex插件可以在创建项目时就在手动配置时下载安装。

如果没有创建时没有下载,那也可以用npm或cnpm安装。

npm install vuex@next --save

vuex使用

src/store/index.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
      // 放数据
      name:'leethon'
  },
  // getters: {
  // },
  mutations: {
      // 放方法,对这个层级的定义是和开发工具交互的方法
      rename(state, 其他参数){
          // state:state中的数据
          state.name = 'xxx'
      }
  },
  actions: {
      // 放方法,对这个层级的定义是和后端交互的方法
      rename(context, 其他参数){
          // context:与$store同义
          // 一般直接接commit去执行mutations中的方法
          context.commit('mutations中的方法名', 其他参数)
          context.state = 'heihei'
      }
  },
  // modules: {
  // }
})

Vuex.Store中写入的state数据可以在任何组件通过

  • this.$store.state.变量名访问到,可以直接改,则组件中的数据就是只走了重新渲染
  • {{$store.state.变量名}}也可以直接插值

action中的方法可以通过$store.dispatch('方法名',参数1,参数2 。。)访问。

mutations中的方法可以通过$store.commit('方法名',参数1,参数2 。。)访问

标签:存储,Vue,sessionStorage,state,localStorage,userinfo,vuex
From: https://www.cnblogs.com/Leethon-lizhilog/p/17142474.html

相关文章

  • vue-cil02
    今日内容props其他#安装依赖 cnpminstall#做成纯净的vue项目 -在router的index.js中删除about的路由 -删除所有小组件和about页面组件 -App.vue上只保留......
  • 父传子 props其他使用方法,混入 mixin,插件,Vue操作cookie,vue Router 设置跳转路由,v
    目录父传子props其他使用方法混入mixin页面组件局部使用混入对象main全局使用插件使用方法1.新建包plugins2.页面组件Vue操作cookie的几种方式1.localStorage永久存储,除......
  • vue3 + ts
    安装#Vite需要Node.js版本>=12.0.0npminitvite@latest#根据相关问题进行回答#需要选择框架以及使用语言配置项目名#进入项目目录cdvite-project#......
  • Vue路由插件使用 -- vue-router
    Vue路由插件使用--vue-router路由插件可以在创建项目时就在手动配置时下载安装。如果没有创建时没有下载,那也可以用npm或cnpm安装。npminstallvue-router@4路由设......
  • Vue-cli混入、elementUI的使用、vue-router、Vuex
    目录混入、elementUI的使用、vue-router、Vuex一、Vue项目改成比较纯净的状态及props其他使用1.Vue项目改成纯净的项目2.props的其他使用二、混入(mixin)三、elementUI的使......
  • vue3 vite异步组件路由懒加载
    引言在Vue2中,异步组件和路由懒加载处理使用import就可以很轻松实现。但是在Vue3.x中异步组件的使用与Vue2.x完全不同了。本文就详细讲讲vue3中异步组件和路由懒......
  • 【Vue】Vue开源样式库 Vuex的使用 vuex的执行流程 Vue-router的使用 路由跳转 路由守
    目录昨日回顾纯净的Vue项目今日内容0开源样式库1Vuex的使用1.1vuex的执行流程图Vuex的使用购物车案例2Vue-router的使用2.1基本使用2.2路由的跳转传入字符串进行跳......
  • vue
    今日内容1.props其他2.混入mixin3.插件4.elementui使用(重点)5.vuex6.vueRouter7.localStorage系列1.props其他安装依赖 cnpminstall做成纯净的vue项目 在ro......
  • VUE+Element+若依随笔001:点击左侧菜单跳转外部链接配置并传参数
    一、后台菜单配置部分:1、菜单管理中:新增父级目录2、配置内容: 菜单名称:测试用菜单 菜单路径:https://www.baidu.com/ 此处需要配置要跳转你的外部链接 组件名称:testMenu 组件......
  • Vue 07
    Vue当我们下载了其他人的vue,是没有依赖的,这是我们需要执行下面这句: cnpminstall就会将我们需要的项目的依赖都安装上。#做成纯净的vue项目 -在router的index.js中......