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 相关文章推荐
JsEasy简介 JsEasy是什么?与下载
Mar 07 Javascript
Javascript Select操作大集合
May 26 Javascript
让你的网站可编辑的实现js代码
Oct 19 Javascript
根据一段代码浅谈Javascript闭包
Dec 14 Javascript
JavaScript面向对象设计二 构造函数模式
Dec 20 Javascript
JSON 数字排序多字段排序介绍
Sep 18 Javascript
js实现进度条的方法
Feb 13 Javascript
有关JavaScript中call()和apply() 的一些理解
May 20 Javascript
微信小程序 两种为对象属性赋值的方式详解
Feb 23 Javascript
vue cli 3.x 项目部署到 github pages的方法
Apr 17 Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 Javascript
详解JavaScript中new操作符的解析和实现
Sep 04 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
php实现倒计时效果
2015/12/19 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
jquery实现简单拖拽效果
2020/07/20 jQuery
Python 基础之字符串string详解及实例
2017/04/01 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
python读取mysql数据绘制条形图
2020/03/25 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
python定义具名元组实例操作
2021/02/28 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
简述安装Slackware Linux系统的过程
2012/01/12 面试题
《维生素c的故事》教学反思
2014/02/18 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
经济贸易系求职信
2014/08/04 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA