Skip to content

useRecentMenus 最近访问

记录用户最近访问的菜单,存储到 localStorage,按 path 去重,默认保留最近 8 条。

基础用法

typescript
import { useRecentMenus, addRecentMenu } from '@/composables'

const { recentMenus, clearRecentMenus, formatVisitTime } = useRecentMenus()

// 记录访问(通常在路由守卫中调用)
addRecentMenu('/system/user', '用户管理', 'user')

// 清空记录
clearRecentMenus()

返回值

属性/方法类型说明
recentMenusRef<RecentMenuItem[]>最近访问菜单列表
clearRecentMenus() => void清空所有记录
formatVisitTime(timestamp: number) => string格式化访问时间(刚刚/X分钟前)

类型定义

typescript
interface RecentMenuItem {
  path: string       // 菜单路径
  title: string      // 菜单标题
  icon?: string      // 菜单图标
  visitedAt: number  // 访问时间戳
}

自动记录

路由守卫中自动记录访问:

typescript
// src/router/guards/index.ts
router.afterEach((to) => {
  addRecentMenu(to.path, to.meta.title, to.meta.icon)
})

以下路径不记录:/dashboard/redirect/404/401/login/

存储键名为 recent_menus,重复访问会移到最前。

基于 MIT 许可发布 · 如需部署协助或二开定制,请查看 支持与合作