为什么sessionStorage不能代替vuex

news/2024/7/10 2:24:25 标签: 开发语言, javascript, vue

vuex_0">vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

sessionStorage

译为“会话存储”,也是HTML5新增的一个存储对象, 用于本地临时存储同一窗口的数据,在 关闭窗口之后 将会删除这些数据,sessionStorage浏览器一般支持5M。

基本区别

vuex

  • 储存在内存(内存详解)中
  • 用于组件之间的传值,可以存储字符串、对象等类型的数据
  • 刷新页面的时候,vuex存储的值会丢失

sessionStorage

  • 会话存储,临时保存
  • 只能存储字符串类型,对象使用JSON.stringify方法转换为字符串,涉及到数据转化,
  • sessionStorage的数据只能在一个标签内,不同标签不共享。关闭窗口或者标签后会删除数据

应用场景

vuex:当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,vuex把…mapState()放到computed中就可以实现。
sessionStorage:一般是用于不同的页面之间的传值。

直接上demo,当对存储数据进行改变的时候,vuex定义的变量自动更新,因为是响应式的,而本地存储无法自动更新,必须再次调用getItem方法才行

<template>
  <div class="page-wrapper">
    <ul>
      <li>store变量:{{ test1 }}</li>
      <li>localStorage自动:{{ test2 }}</li>
      <li>localStorage手动更新:{{ test3 }}</li>
      <li>
        <el-button @click="changeTest">修改全局test</el-button>
      </li>
    </ul>
  </div>
</template>
<script>javascript">
export default {
  name: "bTest",
  data(){
    return {
      test3: ''
    }
  },
  computed:{
    test1(){
      return this.$store.state.test
    },
    test2(){
      return localStorage.getItem('test2')
    }
  },
  created(){
    this.test3 = localStorage.getItem('test3')
  },
  methods: {
    changeTest(){
      this.$store.commit("setText", 'A我是新值AAAAAA');
      localStorage.setItem("test2", 'B我是新值BBBBBBB');
      localStorage.setItem("test3", 'C我是新值CCCCCCCCC');
      this.changeLocal()
    },
    changeLocal(){
      this.test3 = localStorage.getItem('test3')
    }
  }
};
</script>

很多时候,为了解决刷新页面,vuex公共变量变为初始值的问题,一般会结合vuex和sessionStorage一起使用

let mutations = {
  setActiveIndex: (state, activeIndex) => {
    state.activeIndex = activeIndex
    sessionStorage.setItem('activeIndex', activeIndex)
  },
  setCertList: (state, CertListRe) => {
    state.CertListRe = CertListRe
    sessionStorage.setItem('CertListRe',CertListRe)
  }
}

http://www.niftyadmin.cn/n/436391.html

相关文章

商品编号篡改测试-业务安全测试实操(7)

商品编号篡改测试,邮箱和用户篡改测试 手机号码篡改测试-业务安全测试实操(6)_luozhonghua2000的博客-CSDN博客 邮箱和用户篡改测试 测试原理和方法 在发送邮件或站内消息时,篡改其中的发件人参数,导致攻击者可以伪造发信人进行钓鱼攻击等操作,这也是一种平行权限绕过漏洞…

springboot解决报错:The valid characters are defined in RFC 7230 and RFC 3986

原因&#xff1a;tomcat服务器对特殊字符没有处理导致 解决方式&#xff1a; 1、springboot添加tomcat配置类 2、前端对传输字符进行编码 3、使用springboot自带的jetty web服务器 本次解决使用第一种方式 新建spring配置类&#xff1a; Configuration public class Tom…

python带你获取TripAdvisor旅游景点的真实评价

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 猫途鹰&#xff08;TripAdvisor&#xff09;是一个旅游点评网站&#xff0c; 如果您想要爬取该网站的数据&#xff0c;需要了解该网站的访问规则和爬取限制。 所使用软件工具&#xff1a; python 3.8 运行代码 pycha…

《Lua程序设计》--学习8

编译&#xff0c;执行和错误 编译 可以认为dofile函数就是这样&#xff1a; loadfile函数从文件中加载Lua代码段&#xff0c;但它不会运行代码&#xff0c;只是编译代码&#xff0c;然乎将编译后的代码段作为一个函数返回 函数loadfile更灵活。在发生错误的情况中&#xff0…

数据预处理:标准化、正则化、最大最小归一化、绝对值标准化

https://scikit-learn.org/stable/modules/preprocessing.html 标准化 公式 &#xff1a; 优点&#xff1a;适用大多数类型的数据&#xff0c;标准化之后的数据是以0为均值&#xff0c;方差为1的正态分布 缺点 &#xff1a;是一种中心化方法&#xff0c;会改变原有数据得分…

交换机中光口是如何配置的

在往期的文章中我们有介绍到电口和光口的概念&#xff0c;以及两者之间的区别。本期文章我们来了解一下交换机光口的是如何配置的。 一、交换机光口是如何配置的 1、确认光口类型&#xff1a;首先&#xff0c;确定光口插槽使用的光模块类型&#xff08;如SFP、SFP、QSFP等&am…

刁钻面试问题?超全接口测试面试题总结+答案,面试看这篇就够了

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题&#xff1…

mdBook介绍及使用——使用 Markdown 创建你自己的博客和电子书

目录 介绍一、下载与创建项目1.下载2.初始化3.结构说明 二、编写文章与启动1.编写文章2.构建3.启动 mdbook 服务 三、其他配置 介绍 mdBook 是一个使用 Markdown 创建书籍的命令行工具。它非常适合创建产品或 API 文档、教程、课程材料或任何需要清晰、易于导航和可定制的演示…