前端应用2023独立开发者

音乐之家

基于 Vue 2 与音乐目录 API,实现歌曲搜索、历史记录、音乐播放与歌词展示的前端应用。

Vue 2VuexAxiosMusic APISPAFrontend
ARCHIVE / 2023SEARCH → RESULTS → PLAYER → LYRICS

用 API 数据与前端状态组织一条完整的音乐应用流程。

SEARCH↓SONG LIST↓PLAYER↓LYRICS
系统交互重绘;下方保留已匿名化的运行界面证据。

01 / 项目快照

ROLE

独立开发者

STACK

Vue 2 · Vue CLI · Vuex · Axios

DATA

Local music-catalogue API

SCOPE

Search · History · Playback · Lyrics

02 / 用户想完成什么?

输入关键词,找到一首歌,进入播放与歌词。

KEYWORD↓SONG RESULTS↓SELECT SONG↓PLAY↓LYRICS↓SEARCH AGAIN

03 / 应用架构

三个视图和一套轻量前端组织。

App.vue
├── router — page routing
├── store — shared state
├── request — API methods
└── views — Home · Search · Lyrics / Player

报告记录主页、搜索页面、歌词页面三种主要视图;搜索页面返回主页,选择歌曲后进入歌词/播放器,关闭后回到搜索结果。

04 / API 数据流

Axios 将本地 Node API 的歌曲数据带回 UI。

VUE UI↓AXIOS↓localhost:3000↓MUSIC CATALOGUE API↓STATE↓UI RENDER

Node app.js 开启 3000 端口,api/index.js 配置接口路径和 5 秒 timeout;无网络无法请求,网络繁忙可能返回 code -460。

06 / 播放与歌词

歌曲 URL、播放状态与歌词渲染。

SELECT SONG↓FETCH URL + LYRICS↓PLAYING↓PAUSED↓RESUME

选择歌曲后获取 URL,进入歌词页时请求歌词并处理渲染。中间按钮可暂停/继续;上一曲、下一曲图标未绑定事件,歌词可滚动查看但不会随播放进度同步。

07 / 状态如何流动

Vuex 与组件状态共同支撑不同视图。

Search keyword · Search history · Selected song · Song information · Playback state
↓
Shared application state
↓
Home · Search · Lyrics / Player

报告使用 Vuex,也记录了当时为减少跨页面传值复杂度,部分搜索/播放器切换采用 v-if / v-else 而非完全以 Router 处理的折中。

08 / 运行证据

匿名化 UI,保留功能工作痕迹。

09 / 项目边界

IMPLEMENTED

搜索、历史、结果列表、播放、暂停/继续、歌词获取与渲染、关闭歌词页。

NOT IMPLEMENTED

上一曲、下一曲,以及按播放进度同步歌词滚动。

10 / 从页面进入应用

它让我第一次把 UI、状态、API、异步请求、用户交互和媒体播放组合成完整应用流程。

如果今天重做,我会使用 Vue 3、Composition API、Pinia、更清晰的 Router View、播放器状态机、进度条与同步歌词、上一/下一曲、错误/加载/空状态、响应式播放器和搜索 debounce。这些是今天的改进方向,不是 2023 年既有功能。

下一个案例

Linux 环境下基于 C/C++ 的模拟命令解释器

↗