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 |
댓글