三個組件:index.vueregister.vuelogin.vue說明一下彼此之間的關系:index.vue 包含 login.vue通過 prop 屬性和 自定義事件 vue.$emit('xxx') 通信register.vue 包含 login.vue彼此通過 prop 屬性和 自定義事件 vue.$emit('xxx') 通信index.vue 通過 <router-view> 到 register.vue彼此之間沒有直接的關系問題:index.vue 和 register.vue 都包含一個登錄按鈕和登錄狀態(tài):
data() {
ifLogin: false; // 未登錄
}當我點擊 index.vue 的登錄按鈕,login.vue 會通過彈窗形式彈出,并且經過表單輸入后點擊登錄,會把登錄狀態(tài)傳回給 index.vue,然后 index.vue 的登錄狀態(tài)切換成 ifLogin: true 這一步已經完成沒有問題很簡單當我點擊 register.vue 的登錄按鈕,login.vue 也會通過彈窗形式彈出,并且經過表單輸入后點擊登錄,會跳轉到 index.vue 這個首頁,但問題是 index.vue 中的登錄狀態(tài)沒有切換,我需要刷新一遍登錄狀態(tài)才會變成 ifLogin: true 。我希望能不刷新頁面 index.vue 的狀態(tài)就切換。不明白我問題的話思考一下,其實就是login.vue 分別給 index.vue 和 register.vue 都綁定了通信如果不用 vuex 我這個問題有沒有可以解決的辦法。非常感謝
1 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
如果不用vuex保存登錄狀態(tài)的話,就我的想法來看,有兩種辦法。其一,就是在login中登陸成功后,將登陸狀態(tài)保存到sessionStorage中,在每一次進入index中之間,都先判斷下sessionStorage中的登錄狀態(tài),如果為真,則將index中的狀態(tài)置為真,如果為假,則isLogin不做改變,還是未登錄;第二種就是可以在跳回到index的時候把isLogin為真作為query傳遞到index,再在index中判斷傳遞過來的query。其實原理都是一樣,只不過一個是query,另一個是sessionStorage罷了。就我的經驗,登錄狀態(tài)用sessionStorage更合理些。
添加回答
舉報
0/150
提交
取消