useRecentMenus 最近访问
记录用户最近访问的菜单,存储到 localStorage,按 path 去重,默认保留最近 8 条。
基础用法
typescript
import { useRecentMenus, addRecentMenu } from '@/composables'
const { recentMenus, clearRecentMenus, formatVisitTime } = useRecentMenus()
// 记录访问(通常在路由守卫中调用)
addRecentMenu('/system/user', '用户管理', 'user')
// 清空记录
clearRecentMenus()1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
返回值
| 属性/方法 | 类型 | 说明 |
|---|---|---|
recentMenus | Ref<RecentMenuItem[]> | 最近访问菜单列表 |
clearRecentMenus | () => void | 清空所有记录 |
formatVisitTime | (timestamp: number) => string | 格式化访问时间(刚刚/X分钟前) |
类型定义
typescript
interface RecentMenuItem {
path: string // 菜单路径
title: string // 菜单标题
icon?: string // 菜单图标
visitedAt: number // 访问时间戳
}1
2
3
4
5
6
2
3
4
5
6
自动记录
路由守卫中自动记录访问:
typescript
// src/router/guards/index.ts
router.afterEach((to) => {
addRecentMenu(to.path, to.meta.title, to.meta.icon)
})1
2
3
4
2
3
4
以下路径不记录:/dashboard、/redirect、/404、/401、/login、/。
存储键名为 recent_menus,重复访问会移到最前。
