Vue中保存用戶登錄狀態(tài)實例代碼
首先我們假設(shè),這里的登錄組件(register.vue)是App.vue組件的子組件,是通過路由進入登錄組件的。
登錄組件中用戶點擊登錄后,后臺會傳過來一個用戶名,我的App.vue組件中需要拿到這個用戶名,并將上面的“登錄注冊”字樣變?yōu)椤坝脩裘薄?
為了保證用戶刷新后用戶名不會消失,這里我用到了sessionStorage
代碼如下:
register.vue中用戶點擊登錄觸發(fā)signIn方法
signIn(){
this.formData = $(".form").serialize();
var that = this;
this.$http.get("/api/user", this.formData)
.then(response => {
that.userName = response.data.data.user.userName;
that.userHead = response.data.data.userHead;
that.$emit('userSignIn', that.userName);
})
.catch(error => {
console.log(error);
});
}
這里為了測試我直接mock的數(shù)據(jù),真實情況應(yīng)該是this.$http.post
這里的重點是那句
that.$emit('userSignIn', that.userName);
向父組件(App.vue)傳值
App.vue代碼HTML
<keep-alive> <router-view @userSignIn="userSignIn"></router-view> </keep-alive>
App.vue代碼JS
export default {
data(){
return{
userName: sessionStorage.userName
}
},
methods:{
//子組件(register)將用戶名傳過來
userSignIn(userName){
sessionStorage.userName = userName;
this.userName = sessionStorage.userName;
}
}
}
這樣父組件就可以使用用戶名,保持了登錄狀態(tài),并且因為使用了sessionStorage,刷新頁面也可以保持。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue多頁面配置打包性能優(yōu)化方式(解決加載包太大加載慢問題)
這篇文章主要介紹了Vue多頁面配置打包性能優(yōu)化方式(解決加載包太大加載慢問題),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
前端vue3中的ref與reactive用法及區(qū)別總結(jié)
這篇文章主要給大家介紹了關(guān)于前端vue3中的ref與reactive用法及區(qū)別的相關(guān)資料,關(guān)于ref及reactive的用法,還是要在開發(fā)中多多使用,遇到響應(yīng)式失效問題,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-08-08
vue-cli多頁面應(yīng)用實踐之實現(xiàn)組件預(yù)覽項目
在最近的項目中遇到了一個需求,找了相關(guān)資料后終于實現(xiàn),這篇文章主要給大家介紹了關(guān)于vue-cli多頁面應(yīng)用實踐之實現(xiàn)組件預(yù)覽項目的相關(guān)資料,需要的朋友可以參考下2022-05-05
vue路由導(dǎo)航守衛(wèi)和請求攔截以及基于node的token認證的方法
這篇文章主要介紹了vue路由導(dǎo)航守衛(wèi)和請求攔截以及基于node的token認證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04

