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()
}
相关推荐
用户9385156350712 分钟前
从"坐电梯"到"前端路由"——深入理解 Hash 路由原理
前端·typescript·全栈
梦想CAD控件25 分钟前
网页端CAD的图形选择、编辑与夹点操作教程
前端·javascript·node.js
妙码生花30 分钟前
从 PHP 到 AI + Golang,程序员自救转型手记(五十二):管理员权限检查中间件,AI 随意放行预闯大祸
前端·后端·go
月月大王的3D日记40 分钟前
Three.js 入门系列(8):六种光源全解析 —— 关灯了,开光!
前端·javascript
属于自己的天空1 小时前
每天省去重复 Prompt:我用 Skills 把 CRUD 生成标准化了
前端·后端
卡卡罗特AI1 小时前
GitHub怎么用?零基础,保姆级使用教程-上!建议收藏
前端·后端·github
自然 醒1 小时前
v-tooltip自定义指令封装
前端·javascript·vue.js
因_崔斯汀2 小时前
Three.js 3D 热力云图效果实现
前端·three.js
爱勇宝2 小时前
人到了一定年纪,才会看懂这些人性真相
前端·后端