项目相关技术栈:Vue.js
+ Vue Router
+ Vuex
+ axios
+ jsonp
+ better-scroll
该项目是基于搭建。后端使用go+本地音乐数据提供服务
# 克隆
git clone https://github.com/CNBaiLH/music-h5.git
# 打开项目目录
cd music-h5
# 安装依赖
npm install
# 开启本地服务运行项目
npm run dev
- 项目演示地址(请用chrome手机模式预览)
- recommend推荐页面
- singer歌手页面
- singer-detail歌手详情页面
- player音乐播放器组件
- disc歌曲推荐歌单页面
- rank排行榜及其详情页面
- search搜索页面
- playlist歌曲播放列表组件
- usercenter用户中心页面
jsonp
解决跨域问题,获取接口数据axios
后端代理请求接口数据slider
轮播图组件实现- 封装第三方JS库
better-scroll
,处理移动端页面滚动 vue-lazyload
懒加载loading
加载状态组件disc
二级路由实现热门歌单推荐
- 封装获取的歌手数据
listview
歌手列表组件实现右侧字母的快速导航
Vuex
对歌手数据进行状态管理musiclist
组件开发
- HTML5的新特性
audio
元素实现player音乐播放 - 实现对歌曲的【播放、暂停、切歌、歌单顺序播放、单曲循环、随机播放,添加喜欢】
- Vue钩子函数实现播放器动画
- 歌曲播放进度条
- mini音乐播放器
- 歌曲排行榜:二级路由
- 组件的扩展复用
search-box
搜索框组件(有无query搜索词)search-list
推荐历史组件(无query)suggest
搜索内容组件(有query)- 缓存策略
localStorage
存储搜索历史 confirm
确认组件
add-song
添加歌曲到列表transition-group
列表动画Vue.js
组件复用
- 我喜欢的歌曲列表
- 最近听的歌曲列表
- 随机播放
通用组件包括如下
confirm
确认组件listview
列表快速导航组件loading
加载状态组件noResult
组件progress-bar
进度条组件progress-circle
圆形进度条组件Scroll
移动端滚动组件search-box
搜索框组件search-list
搜索列表组件slider
轮播图组件switch
标签切换组件top-tip
顶部消息提示组件song-list
歌曲列表组件还有一些是为本项目量身订做的组件,与上面的通用组件都在
src/components
目录下
- 公共
base.css
–基础样式,变量设置、防止高度塌陷- 初始化
normalize.css
-初始化浏览器样式
vue-lazyload
实现商品图片懒加载FastClick
解决移动端点击的300ms的延迟debounce
防抖函数实现页面刷新keep-alive
避免页面反复重渲染导致的性能问题
music-h5
build --打包配置
src -- 项目文件
App.vue
main.js
api -- axios、jsonp服务端通讯
base -- 基础组件
common -- 处理缓存、操作dom、配置网络通讯、mixin等工具类
components -- 业务组件
router -- Vue Router路由配置
store -- Vuex