vue項目,刷新后store中的數(shù)據(jù)丟了,我用localstorage存儲,在拿出來,發(fā)現(xiàn)頁面會報錯,不知道什么原因。
代碼:
login:
methods: {
...mapMutations([
'SET_USER',
]),
Login(){
Login(this.credentials.email,this.credentials.password)
.then(res => {
console.log(res.data,'請求成功')
var data = res.data;
if(data.error == ""){
this.SET_USER(data.data);
console.log(data.data);
this.$router.go(-1);
}
})
}
}
actions:
login(context, user) {
context.commit(SET_USER, user);
},
getUser(context, user) {
var data = {
id: getStore('user_id'),//從localStorage中拿數(shù)據(jù)
username: getStore('user_name'),
session_id: getStore('session_id'),
}
context.commit(GET_USER, data)
}
mutations:
[SET_USER](state, user) {
state.user = user;
setStore('user_id', user.id);
setStore('user_name', user.username);
setStore('session_id', user.session_id);
},
[GET_USER](state, user) {
state.user = user;
}
header組件:
<template v-if="user">
<router-link to="/login" :exact="true">登錄 </router-link>
<router-link to="/signin" :exact="true">注冊 </router-link>
</template>
<template v-else>
<b-nav-item-dropdown :right="!isRTL" class="demo-navbar-user">
<template slot="button-content">
<span class="d-inline-flex flex-lg-row-reverse align-items-center align-middle">
<span class="px-1 mr-lg-2 ml-2 ml-lg-0">{{ user.username }}</span>
</span>
</template>
<b-dd-item><i class="ion ion-ios-person text-lightest"></i> 個人中心</b-dd-item>
<b-dd-divider />
<b-dd-item><i class="ion ion-ios-log-out text-danger"></i> 退出登錄</b-dd-item>
</b-nav-item-dropdown>
</template>
script里邊:
mounted(){
this.getUser()
},
methods: {
...mapActions([
'getUser'
]),
toggleSidenav () {
this.layoutHelpers.toggleCollapsed()
},
getLayoutNavbarBg () {
return this.layoutNavbarBg
}
},
computed: {
...mapState([
'user'
])
},
getStore和setStore:
/**
* 存儲localStorage
*/
export const setStore = (name, content) => {
if (!name) return;
if (typeof content !== 'string') {
content = JSON.stringify(content);
}
window.localStorage.setItem(name, content);
}
/**
* 獲取localStorage
*/
export const getStore = name => {
if (!name) return;
return window.localStorage.getItem(name);
}
/**
* 刪除localStorage
*/
export const removeStore = name => {
if (!name) return;
window.localStorage.removeItem(name);
}
這樣下來頁面就會拋異常
是我哪塊寫法不對么,vue-devtools中的state是有數(shù)據(jù)的
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。