music / src /router /index.js
ahutchen's picture
refactor(search): 重构搜索功能并添加搜索历史页面
a1eddda
import { createRouter, createWebHashHistory } from 'vue-router'
import HomePage from '@/views/HomePage.vue'
import FavoritesPage from '@/views/FavoritesPage.vue'
import HistoryPage from '@/views/HistoryPage.vue'
import SearchHistoryPage from '@/views/SearchHistoryPage.vue'
import PlaylistsPage from '@/views/PlaylistsPage.vue'
import PlaylistDetailPage from '@/views/PlaylistDetailPage.vue'
import PlayQueuePage from '@/views/PlayQueuePage.vue'
import SettingsPage from '@/views/SettingsPage.vue'
import FullPlayerPage from '@/views/FullPlayerPage.vue'
// 保留旧的MyMusicPage作为兼容
import MyMusicPage from '@/views/MyMusicPage.vue'
const routes = [
{
path: '/',
redirect: '/home'
},
{
path: '/home',
name: 'Home',
component: HomePage,
meta: {
title: '首页',
keepAlive: true
}
},
{
path: '/my-music',
name: 'MyMusic',
component: MyMusicPage,
meta: {
title: '我的音乐',
keepAlive: true,
deprecated: true // 标记为已废弃,但保留兼容性
}
},
// 新的独立页面 - 根据网易云音乐架构研究报告重新设计
{
path: '/favorites',
name: 'Favorites',
component: FavoritesPage,
meta: {
title: '我喜欢的音乐',
keepAlive: true
}
},
{
path: '/history',
name: 'History',
component: HistoryPage,
meta: {
title: '播放历史',
keepAlive: true
}
},
{
path: '/search-history',
name: 'SearchHistory',
component: SearchHistoryPage,
meta: {
title: '搜索历史',
keepAlive: true
}
},
{
path: '/play-queue',
name: 'PlayQueue',
component: PlayQueuePage,
meta: {
title: '播放列表',
keepAlive: false
}
},
{
path: '/playlists',
name: 'Playlists',
component: PlaylistsPage,
meta: {
title: '我的歌单',
keepAlive: true
}
},
{
path: '/playlists/:id',
name: 'PlaylistDetail',
component: PlaylistDetailPage,
meta: {
title: '歌单详情',
keepAlive: true // 启用缓存,避免重复加载图片
}
},
{
path: '/settings',
name: 'Settings',
component: SettingsPage,
meta: {
title: '设置',
keepAlive: false
}
},
{
path: '/player',
name: 'FullPlayer',
component: FullPlayerPage,
meta: {
title: '正在播放',
keepAlive: false,
fullScreen: true
}
}
]
const router = createRouter({
history: createWebHashHistory(),
routes
})
// 路由守卫
router.beforeEach((to, from, next) => {
// 设置页面标题
if (to.meta?.title) {
document.title = `${to.meta.title} - 云音乐`
}
next()
})
export default router