【发布时间】:2021-07-22 02:54:18
【问题描述】:
登录后,我设置了 username 和 loggedIn 值,我将这些值导入到我的组件中,它可以工作,但是在刷新页面后它又回到了原始值,为什么会这样?
我在 vue 2 中使用 vuex 时没有这个问题。我真的必须将这些数据存储在 localStorage 中吗?呵呵。
const loggedIn = ref(false);
const userName = ref('');
export default function useAuth() {
const login = async ({ email, password }) => {
try {
const result = await AuthService.login({ email: email, password: password });
userName.value = result.data.nick;
loggedIn.value = true;
}
}
return {login, loggedIn, userName}
}
【问题讨论】:
-
是的,如果你使用
localStorage来做类似的事情会有所帮助。如果您不想将用户数据存储在localStorage中,则必须在每次刷新页面时要求他们登录。此外,使用数据放置loggedIn和userName会好很多。 -
嘿嘿,刷新页面时,时间状态总是Clear。你需要使用Session Storage/Local Storage。
-
另外,您缺少
catch或finally表达式。至少需要其中之一。代码无效。 -
您无法在 vue 2 中以原生方式实现这一点,您可能正在使用诸如 vuex-persist 之类的库。 vuex 状态总是在页面刷新时清除。刷新页面后保持状态的唯一方法是使用 localStorage 或 sessionStorage(当浏览器关闭时会被删除)