Vue 全家桶实现移动端酷狗音乐功能


Posted in Javascript onNovember 16, 2018

Vue 已经用了不少时间,最近抽空把以前的未完成的酷狗音乐做完了,过来分享下,也可以直接点这里预览,注意切换成手机模式。

技术栈: vue-router、eventBus、vuex、vue-awesome-swiper

整体功能 vs 酷狗官网:

Vue 全家桶实现移动端酷狗音乐功能

总体模拟官网,原来的亮点保留,如:

  1. 图片懒加载

除此之外,增加了

  1. 加了全局的 Loading 组件,根据不同页面调整 Loading 尺寸
  2. 搜索页面做了优化,可以在刷新时保留之前的搜索结果
  3. 播放页面单独做了一个路由,可以在刷新时保留当前歌曲页面
  4. 播放器的常驻以及滚动时最小化,避免遮挡歌曲名称
  5. 部分可以重用,极少更新的数据,譬如主页四大栏,避免了数据的二次请求。
  6. 增加了主页四栏手势滑动切换
  7. 歌词滚动等
  8. ...

如果参考网易云,后续可以加的新功能还有一些,不过暂时我要先去做其他事了。

CSS 觉得不难,都是手写的,采用的是 BEM 规范,js 是 ESLint。

总体难度适中,只不过,如果规范化,组件化抽象,任务还是不少的,具体的坑我就不说了,源代码都在这里,推荐想要熟悉 vue 的同学也自己试下。

作为一个练手项目,vue 全家桶都覆盖到了,当然,如果你只用 vue 和 vue-router 去实现,也不是不行,实现到一大半,就会明白为什么要全家桶了。

至于酷狗的接口以及跨域的问题,解决方案都在 README 里,都是借用的其他作者的分享与整理,在此还是要感谢下 ecitlm 和 JsonBird。

src/ 文件目录:

|__ App.vue
 |__ assets
  |__ css
   |__ base.less
   |__ constant.less
   |__ iconfont.css
   |__ reset.css
  |__ images
   |__ logo__grey.png
   |__ logo__text.png
   |__ logo__theme.png
  |__ js
   |__ api.js
   |__ bus.js
   |__ globalEvent.js
   |__ mobileLayout.js
   |__ utils.js
 |__ components
  |__ Main.vue
  |__ new_song
   |__ NewSong.vue
   |__ Slider.vue
  |__ player
   |__ NextButton.vue
   |__ PlayButton.vue
   |__ PlayerLyrics.vue
   |__ PlayerMax.vue
   |__ PlayerMed.vue
   |__ PlayerProgress.vue
   |__ PrevButton.vue
  |__ public
   |__ AppHeader.vue
   |__ AppLoading.vue
   |__ AppMusicList.vue
   |__ AppNav.vue
   |__ PubList.vue
   |__ PubModuleDes.vue
   |__ PubModuleHead.vue
   |__ PubModuleTitle.vue
  |__ rank
   |__ RankInfo.vue
   |__ RankList.vue
  |__ search
   |__ Search.vue
  |__ singer
   |__ SingerCategory.vue
   |__ SingerInfo.vue
   |__ SingerList.vue
  |__ song
   |__ SongList.vue
   |__ SongListInfo.vue
 |__ main.js
 |__ mixins
  |__ index.js
  |__ loading.js
 |__ router
  |__ index.js
 |__ store
  |__ device.js
  |__ images.js
  |__ index.js
  |__ loading.js
  |__ newSong.js
  |__ player.js
  |__ rank.js
  |__ search.js
  |__ singer.js
  |__ song.js

总结

以上所述是小编给大家介绍的Vue 全家桶实现移动端酷狗音乐功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
Mar 04 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
谈谈JavaScript中function多重理解
Aug 28 Javascript
分享两款带遮罩的jQuery弹出框
Dec 30 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
jQuery ajax动态生成table功能示例
Jun 14 jQuery
浅谈vue-lazyload实现的详细过程
Aug 22 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 Javascript
jQuery实现视频展示效果
May 30 jQuery
JavaScript实现音乐导航效果
Nov 19 Javascript
微信小程序自定义toast的实现代码
Nov 16 #Javascript
vue实现简单的星级评分组件源码
Nov 16 #Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 #Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 #Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 #Javascript
layDate插件设置开始和结束时间
Nov 15 #Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 #Javascript
You might like
根德YB400的电路分析
2021/03/02 无线电
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
Python格式化压缩后的JS文件的方法
2015/03/05 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
感恩之星事迹材料
2014/05/03 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
师德师风学习材料
2014/12/19 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
java解析XML详解
2021/07/09 Java/Android
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python