记录:vue使用cookie、vuex和localstorage、sessionStorage进行状态管理

一.cookie、session、localStorage、sessionStorge总体介绍

cookie:浏览器储存,最大4KB,请求头会自动带上(最先验证的时候可以使用),vue中默认有效时间为浏览器关闭,django中可以自己设置。(位于google的setting里面,你可以去找找/控制台的Application里面都有)

session:保存在服务器,配合着用挺好。(一般是放在数据库里的session表里面)

localStorage:除非被清除,否则永久保存,大小5M,最大好处,你不删除永远存在。(控制台的Application里面都有)

sessionStorage:仅在当前会话下有效,关闭页面或浏览器后被清除,大小5M,这是它与上面的区别。(控制台的Application里面都有)

localStorage:

1.查询数据:localStorage.getItem('dataTest')

2.修改数据:localStorage.setItem('dataTest', '这是测试的')

3.删除数据/全删除:localStorage.removeItem('dataTest') | localStorage.clear()

sessionStorage:

1.查询数据:sessionStorage.getItem('token')

2.修改数据:sessionStorage.setItem('token', 'lalla')

3.删除数据/全删除:sessionStorage.removeItem("token")  | sessionStorage.clear()

cookie:

cookie.js

export function setCookie (cname, value, expire) {
  var date = new Date()
  date.setSeconds(date.getSeconds() + expire)
  document.cookie = cname + '=' + escape(value) + '; expires=' + date.toGMTString()
  // console.log(document.cookie)
}

export function getCookie (cname) {
  if (document.cookie.length > 0) {
    let cstart = document.cookie.indexOf(cname + '=')
    if (cstart !== -1) {
      cstart = cstart + cname.length + 1
      let cend = document.cookie.indexOf(';', cstart)
      if (cend === -1) {
        cend = document.cookie.length
      }
      return unescape(document.cookie.substring(cstart, cend))
    }
  }
  return ''
}

export function delCookie (cname) {
  setCookie(cname, '', -1)
}

然后在main.js里面注册

二.vuex

vuex我觉得就是组件之间的一个便利的状态通信,如何传递一个状态都要去用父组件转递,bus传递,考虑到这样特别费劲,所以用它吧,仅个人认为。

vuex创建store文件夹

index.js

getters.js

在vue里面我们需要获取vuex值的时候,一般两个方式:this.$store.state.name   |    this.$store.getters.getUsername

rootState.js

actions.js

mutations.js

这个就是项目结构了,vuex刷新页面状态就没了,所以需要localStorage或者sessionStorage来配合

下面是具体的使用方法:

1.查询数据:this.$store.state.name   |    this.$store.getters.getUsername

2.修改数据:this.$store.dispatch('changeName', 'newname')

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: cookie是存储在用户本地终端上的数据,用于辨别用户身份和进行会话跟踪。通常经过加密。它是一种在客户端存储数据的机制。引用:sessioncookie都是用来跟踪浏览器用户身份的会话方式,记录客户状态的机制。引用:sessioncookie具有更高的安全性。 cookie主要的特点是: - 存储在用户本地终端上,可以被浏览器读取和修改; - 可以设置过期时间,即在一定时间后失效; - 存储数据的大小有限制,一般为4KB; - 可以被不同的域名共享。 sessionStorage是HTML5新增的Web存储技术,它在浏览器存储数据,但是与cookie不同,它的数据只会在当前会话保留,即当用户关闭浏览器标签页或窗口时,数据会被清除。sessionStorage的特点如下: - 存储在浏览器,只能被当前页面访问; - 数据在当前会话有效,关闭标签页或窗口后数据会被清除; - 存储数据的大小也有限制,一般为5MB; - 数据仅在同一域名下共享。 localStorage也是HTML5新增的Web存储技术,与sessionStorage类似,它也是存储在浏览器的数据。但与sessionStorage不同的是,localStorage的数据在用户关闭浏览器后仍然会保留,不会被清除。localStorage的特点如下: - 存储在浏览器,可以被所有页面访问; - 数据在浏览器关闭后仍然有效,除非用户手动清除; - 存储数据的大小也有限制,一般为5MB; - 数据仅在同一域名下共享。 服务端session是指将用户的会话信息存储在服务器端,通过在客户端存储一个session id来与服务器端进行交互。服务器端根据session id来识别用户,从而实现身份认证和会话管理。与前面提到的cookie和Web存储技术不同,服务端session的数据存储在服务器端,客户端只存储了一个标识。服务端session的特点如下: - 数据存储在服务器端,客户端只存储session id; - 数据在客户端关闭或过期后不会被清除; - 可以存储大量的数据,没有明确的大小限制; - 数据不共享,每个用户拥有自己的session数据。 综上所述,cookiesessionStoragelocalStorage是用来在浏览器端存储数据的机制,它们在数据存储的范围、有效期和共享性上有所不同。而服务端session是将用户的会话信息存储在服务器端,通过在客户端存储一个session id来与服务器端进行交互。请根据具体的需求选择合适的机制来使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于Vue 服务端Cookies删除的问题](https://download.csdn.net/download/weixin_38658564/13633580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [session,cookie,sessionStorage,localStorage的区别](https://blog.csdn.net/weixin_43758377/article/details/109215019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值