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

简介: 同步存储读取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));
    });
  },



1425695-20200510192339142-812597477.gif


总结一下beforeunload事件


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


window.addEventListener("beforeunload", () => {
console.log("当浏览器窗口关闭或者刷新时,会触发beforeunload事件");
    });
相关文章
|
1月前
Vuex中改变store状态值的方法是什么?为什么?
Vuex中改变store状态值的方法是什么?为什么?
57 1
|
8月前
|
存储 JavaScript 前端开发
Vuex基础使用存取值+异步请求
Vuex基础使用存取值+异步请求
40 1
|
8月前
|
存储 JavaScript 前端开发
Vuex基础使用存取值+异步&请求后台
Vuex基础使用存取值+异步&请求后台
72 0
|
21天前
|
存储 前端开发 数据库
Vuex数据刷新丢失如何处理
Vuex数据刷新丢失如何处理
20 4
|
1月前
|
存储 JavaScript
vuex怎么防止数据刷新丢失?
vuex怎么防止数据刷新丢失?
17 1
|
1月前
|
JavaScript
Vue中避免滥用this去读取data中数据
Vue中避免滥用this去读取data中数据
|
1月前
|
JavaScript
Vue 定义只读数据 readonly
Vue 定义只读数据 readonly
|
1月前
|
JavaScript
状态管理之Vuex (三) store利用module拆分
状态管理之Vuex (三) store利用module拆分
37 0
|
1月前
|
存储 JavaScript
vue列表新增存储假数据
vue列表新增存储假数据
39 0