Android手把手编写儿童手机远程监控App之vue3 路由守卫

上节完成agentweb如何实现全屏。 vue3最新的路由守卫与旧版不同。 旧版守卫:

clike 复制代码
router.beforeEach((to, from, next) => {
  console.log('进入路由前')

  const token = getUserData();

  // 未登录跳转登录页
  if (to.path !== '/login' && !token) {
    next('/login')
  } else {
    next()
  }
})

新版守卫

clike 复制代码
router.beforeEach((to) => {
  const token = getUserData();
  if (!token && to.path !== '/login') {
    return {
      path: '/login'
    }
  }

  return true
})

对比差别,直接返回路由地址,而不是使用next放行。

storge.ts获取token源码

clike 复制代码
const dumainfo = 'dumainfo';
export function getUserData() {
  if (!window.localStorage) {
    return null
  }
  return localStorage.getItem(dumainfo)
}

export function setUserData (data:string) {
  if (!window.localStorage) {
    return false
  }
  localStorage.setItem(dumainfo, data)
  console.log('设置成功')
  return true
}

export function removeUserData () {
  localStorage.removeItem(dumainfo)
}

export function getDictData () {
  if (!window.localStorage) {
    return null
  }
  return localStorage.getItem('dictdata')
}

export function setDictData (data:string) {
  if (!window.localStorage) {
    return false
  }
  localStorage.setItem('dictdata', data)
  console.log('设置成功')
  return true
}

export function clearData () {
  localStorage.clear()
}
相关推荐
不服老的小黑哥2 小时前
AI规范驱动编程-harness工程项目实战
前端
vivo互联网技术2 小时前
从 Web 到桌面:基于 Tauri 2.0 + Vue 3 打造 vivo 线下门店「大头贴」拍照体验系统
前端·rust
光影少年2 小时前
React 合成事件机制、和原生事件区别、事件冒泡阻止
前端·react.js·掘金·金石计划
没有鸡汤吃不下饭2 小时前
告别手动对接口:我用 OpenAPI JSON 做了一个前端接口同步 Skill
前端·ai编程
空栈独白2 小时前
NestJS实战-前后端联调
前端
米饭同学i2 小时前
浏览器记住密码导致忘记密码页面输入框回显错乱?看这篇就够了
前端
孤舟望月2 小时前
NestJS实战-后端开发-全局配置
前端
陆枫Larry2 小时前
从一个按钮间距,聊透 CSS 的 gap 属性
前端
北冥有鱼2 小时前
mqtt 测试
前端·后端