同步存储读取vuex中store中的值

main.js

import store from "./store";

Vue.prototype.$store = store;


store中的index.js中

import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
export default new Vuex.Store({
  state: {
    username: "",
  },

  // 同步  第一个形参 代表state
  //name形参代表的是  你此时传递过来的参数
  mutations: {
    getTopClickMenuName: (state, name) => {
      state.username = name; //赋值
    },
  },
  actions: {},
  modules: {},
});

A页面设置值

<van-button type="warning" @click="add">++</van-button>
<van-button type="danger">{{ $store.state.username }}</van-button>

methods: {
    //调用函数,
    add() {
      this.$store.commit("getTopClickMenuName", this.$store.state.username + 1);
    },
},

B页面获取值(第以种方式直接获取)

<h1>{{ $store.state.username }}--</h1>

第二种方式使用computed

<h1>{{ atoB }}--</h1>

computed: {
    atoB() {
      return this.$store.state.username;
    },
  },

我们发现在刷新页面的情况下。
store中的值,会丢失的。在刷新的时候,保留在本地
在app.vue中写

 created() {
    //在页面加载时读取sessionStorage里的状态信息
    if (sessionStorage.getItem("username")) {
      this.$store.replaceState(
        Object.assign(
          {},
          this.$store.state,
          JSON.parse(sessionStorage.getItem("username"))
        )
      );
    }

    //在页面刷新时将vuex里的信息保存到sessionStorage里
    window.addEventListener("beforeunload", () => {
      sessionStorage.setItem("username", JSON.stringify(this.$store.state));
    });
  },

总结一下beforeunload事件

当浏览器窗口关闭或者刷新时,会触发beforeunload事件。

window.addEventListener("beforeunload", () => {
      console.log("当浏览器窗口关闭或者刷新时,会触发beforeunload事件");
    });
posted @   南风晚来晚相识  阅读(7177)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示