zoukankan      html  css  js  c++  java
  • 登录后用户信息存储vuex,刷新数据丢失

    npm install vuex --save
    

    main.js

    import store from './store/index.js'
     
    new Vue({
      el: '#app',
      router,
      store,
      components: { App },
      template: '<App/>'
    })
    

    store.js

    // index.js
    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    export default new Vuex.Store({
      state: {
        userInfo: JSON.parse(sessionStorage.getItem('userData')),
      },
      getters: {
        userInfo: state =>{
          if(!state.userInfo){
            state.userInfo = JSON.parse(sessionStorage.getItem('userData'))
          }
          return state.userInfo
        },
      },
      mutations: {
        getUserInfo(state,data){
          state.userInfo = data
          sessionStorage.setItem('userData', JSON.stringify(data))
        },
      },
      actions: {
        getUserInfo(context){
          context.commit('getUserInfo')
        },
      }
    })

    login.vue

    <template>
    <div>
      <input v-model="username" type="text">
      <input v-model="password" type="text">
      <div @click="login">点击登录</div>
    </div>
    </template>
    
    <script>
    import {mapState, mapMutations} from 'vuex'
    export default {
      data(){
        return {
          userInfo: null,
          username: '',
          password: '',
        }
      },
      methods: {
        ...mapMutations(['getUserInfo','getNum']),
        login(){
          this.userInfo = {
            name: this.username,
            age: this.password,
            roles: ['create', 'delete']
          }
          // sessionStorage
          sessionStorage.setItem('userData', JSON.stringify(this.userInfo));  
          // vuex
          this.getUserInfo(this.userInfo)
          this.$router.push({
            path: '/test'
          })
        },
        addNum(){
          this.getNum()
        }
      }
    }
    </script>
    
    <style>
    
    </style>

    退出

    oueLogin(){
          sessionStorage.removeItem('userData')
          this.getUserInfo(null)
          this.$router.push('/')
        }
  • 相关阅读:
    「牛客练习赛53A」超越学姐爱字符串
    「CF52C」Circular RMQ
    「Luogu 2367」语文成绩
    「Luogu 1821」[USACO07FEB]银牛派对Silver Cow Party
    「POJ 3268」Silver Cow Party
    「Luogu 1349」广义斐波那契数列
    「CF630C」Lucky Numbers
    「Luogu 3792」由乃与大母神原型和偶像崇拜
    排序机械臂
    P2587 [ZJOI2008]泡泡堂
  • 原文地址:https://www.cnblogs.com/xhrr/p/13529558.html
Copyright © 2011-2022 走看看