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 相关文章推荐
用javascript实现自定义标签
May 08 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
AngularJS轻松实现双击排序的功能
Aug 30 Javascript
微信小程序 animation API详解及实例代码
Oct 08 Javascript
基于IView中on-change属性的使用详解
Mar 15 Javascript
javascript少儿编程关于返回值的函数内容
May 27 Javascript
微信小程序rich-text富文本用法实例分析
May 20 Javascript
Node.js实现简单的爬取的示例代码
Jun 25 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
Sep 16 Javascript
vue实现防抖的实例代码
Jan 11 Vue.js
微信小程序自定义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/11/24 PHP
php xml文件操作实现代码(二)
2009/03/20 PHP
destoon官方标签大全
2014/06/20 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
easyui validatebox验证
2016/04/29 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
详细介绍Python中的偏函数
2015/04/27 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
Django 批量插入数据的实现方法
2020/01/12 Python
python实现猜拳游戏
2020/03/04 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
临床医学大学生求职信
2013/09/28 职场文书
团队会宣传标语
2014/10/09 职场文书
党员年度个人总结
2015/02/14 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL