首页菜单选中

每次我们新页面,左侧菜单没有选中
在这里插入图片描述
修改 HomeView.vue获取当前页面 path,给 Menu 菜单的default-active动态赋值这个值是默认激活菜单的 index

<el-menu
	active-text-color="#ffd04b"
	background-color="#545c64"
	class="el-menu-vertical-demo"
	:default-active="active"
	text-color="#fff"
	router
>

setup() {
    const router = useRouter()
    const list = router.getRoutes().filter(value => value.meta.isShow)
    const route = useRoute()
    console.log(route.path)
    return {
      list,
      active:route.path
    }
  }

这样当我们再刷新页面菜单也会默认选中

首页重定向

我们进入首页http://localhost:8080/
,页面是空白
在这里插入图片描述
我们可以直接重定向商品列表即可

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    name: 'home',
    redirect:'goods',
    component: HomeView,
    children:[
     ......
    ]
  },
  ......
]

这样当我们登录完成进入首页时会重定向商品列表
在这里插入图片描述

路由守卫

没有登录时,我们需要跳转到登录页,我们来增加路由守卫,修改 index.ts

......
router.beforeEach((to,from,next)=>{
  const token:string|null = localStorage.getItem('token')
  if(!token && to.path !== '/login'){
    next('/login')
  }else{
    next()
  }
})
export default router

退出登录

修改 HomeView.vue,把退出登录改为按钮形式,并增加退出登录的方法

<el-col :span="4"><el-button type="primary" @click="delToken">退出登录</el-button></el-col>

	const delToken = ()=>{
      localStorage.removeItem('token')
      router.push('/login')
    }
    return {
      list,
      active:route.path,
      router
    }

在这里插入图片描述
源码下载

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注