我的vuex商店中有一个模块auth
。我想在那里存储用户对象(包含accesstoken,...)。使用商店,我可以轻松地使用商店获取器来询问应用程序中用户是否已登录等信息。
我还将用户信息(accessToken等)存储在localStorage
中,以处理关闭应用程序后用户返回并且用户仍“登录”(即令牌仍然有效)的情况。
我的问题是:当用户刷新页面时,我的beforeEach
函数是第一个被调用的函数。但是当时我的用户存储尚未满。所以我的
let loggedIn = store.getters['auth/isLoggedIn'];
中的 beforeEach
返回false。
我在App.vue
beforeMount
中有一个地址:
if (JSON.parse((localStorage.getItem("user") || '{}'))) {
//This is the mutation to the user store
this.SET_USER(JSON.parse((localStorage.getItem("user") || '{}')));
但是在beforeEach
中的router
已执行之后,这称为。所以我应该放在我的应用程序的哪个位置:
if (JSON.parse((localStorage.getItem("user") || '{}'))) {
this.SET_USER(JSON.parse((localStorage.getItem("user") || '{}')));
因此用户存储库一开始就正确填充了吗?