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 相关文章推荐
层序遍历在ExtJs的TreePanel中的应用
Oct 16 Javascript
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
jquery实现文字由下到上循环滚动的实例代码
Aug 09 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
node.js中的fs.unlink方法使用说明
Dec 15 Javascript
javascript中sort()的用法实例分析
Jan 30 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
JavaScript中数据结构与算法(一):栈
Jun 19 Javascript
浅谈jQuery hover(over, out)事件函数
Dec 03 Javascript
一次围绕setTimeout的前端面试经验分享
Jun 15 Javascript
js实现列表向上无限滚动
Jan 13 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
PHP一些有意思的小区别
2006/12/06 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
使用js实现的简单拖拽效果
2015/03/18 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
Python2和Python3.6环境解决共存问题
2018/11/09 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
python实现字典嵌套列表取值
2019/12/16 Python
如何提高python 中for循环的效率
2020/04/15 Python
解决pip install psycopg2出错问题
2020/07/09 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
春节联欢会策划方案
2014/05/16 职场文书
2014年团委工作总结
2014/11/13 职场文书
在校证明模板
2015/06/17 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL