vue.js - 如何在 Nuxt App 中使用重定向而不闪烁?
问题描述
我有 nuxt js 应用程序,我已经用 vuex 实现了用户授权。当用户点击导航栏中的 nuxt 链接时
<nuxt-link to="/profile">Profile</nuxt-link>
我检查用户是否登录。如果不是 -> 重定向到登录页面,如果是 -> 停留在同一页面上 “Profile” 是在检查 vuex 状态之前闪烁。个人资料页面出现在重定向到登录页面之前的毫秒数
我该如何解决?
导航栏:
<nuxt-link to="/profile">Profile</nuxt-link>
个人资料页:
<template>
<div class="profile">
<h1>Profile</h1>
<p> Content</P>
</div>
</template>
beforeCreate() {
if (!this.isUserLogged) {
this.$router.push({name: 'login', path: '/login'})
}
},
computed: {
...mapState('login', ['isUserLogged']),
},
Vuex:
export const state = () => ({
isUserLogged: false,
})
解决方案
您可以在第一次呈现导航栏组件时检查用户是否已经登录。如果用户已经登录,只需禁用链接。如果用户未登录,您可以在成功登录后通过重新渲染导航栏组件来禁用链接。或者,您可以在用户登录或注销时动态禁用或启用链接。
推荐阅读
- javascript - 如何在 react-native 中操作单个对象 JSON 的获取响应
- sqlite - Delphi FDQuery 选择没有列名的行
- r - 带有使用 label_parsed 的表达式的 R 方面标签
- ios - 系统字体在某些设备上不会显示 Light 或 UltraLight 粗细
- android - 关闭应用程序后小部件停止更新
- python - 未处理的异常后不显示 Windows 控制台提示
- google-apps-script - google speadsheet api onOpen 在移动 ios 上不起作用
- r - 带有 R 的电影流行度推荐代码
- php - 联系表格重定向
- c# - C# Wpf 将字体存储为字节然后返回字体