본문 바로가기
프로그램/Vue

store 저장소 처리

by cbwstar 2021. 9. 1.
728x90
반응형

전역적으로 설정하여 값을 가져 가기 위해서는 store 설정을 하여야 한다.

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    memberInfo: JSON.parse(localStorage.getItem('member')),
    drawer: false,
    siteTitle: '',
    appBarShow: true,
    sb: {
      act: false,
      msg: '',
      color: 'error'
    },
    user: {
      name: '관리자',
      id: '없음',
      img: 'https://randomuser.me/api/portraits/men/85.jpg'
    }
  },
  mutations: {
    getMemberInfo (state, user) {
      console.log('state', state)
      console.log('user', user)
      state.memberInfo = JSON.parse(localStorage.getItem('member'))
      // state.memberInfo = localStorage.getItem('member')
      state.user = user
    },
    setMemberInfo (state) { // 화면리프레쉬되었을때 저장소에서 회원정보를 읽어와서 셋팅한다.
      state.memberInfo = JSON.parse(localStorage.getItem('member'))
      // state.memberInfo = localStorage.getItem('member')
      console.log('local저장소 : ', state.memberInfo)

      if (state.memberInfo != null) {
        const userInfo = {}
        userInfo.id = state.memberInfo.id
        userInfo.name = state.memberInfo.name
        userInfo.img = 'https://randomuser.me/api/portraits/men/75.jpg'
        state.user = userInfo
      }
    },
    delMemberInfo (state) {
      localStorage.removeItem('member')
      state.memberInfo = null
      state.user = {
        name: '일반사용자',
        id: '없음',
        img: 'https://randomuser.me/api/portraits/men/85.jpg'
      }
    },
    setSiteTitle (state, title) { // 사이트 타이틀
      state.siteTitle = title
    },
    pop (state, d) {
      state.sb.msg = d.msg
      state.sb.color = d.color
      state.sb.act = false
      if (d.act === undefined) state.sb.act = true
    },
    setDrawer (state) { // 탑메뉴 숨김상태값
      state.drawer = !state.drawer
    },
    setAppBarDrawer (state) { // 앱바 숨김상태값
      state.appBarShow = !state.appBarShow
    }
  },
  actions: {
  },
  modules: {
  }
})
728x90
반응형

'프로그램 > Vue' 카테고리의 다른 글

Vs Code 기본 환경 셋팅  (0) 2021.09.02
vue 개발환경 설정하기  (0) 2021.09.02
router 설정  (0) 2021.09.01
로그인시 rsa 암호화 적용하기  (0) 2021.09.01
vue에서 rsa암호화 하여 자바와 통신하기  (1) 2021.09.01

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading