WEBAPP开发之基于Vue.js的音乐播放器(Webapp)
白羽 2018-08-13 来源 :网络 阅读 888 评论 0

摘要:本文将带你了解WEBAPP开发之基于Vue.js的音乐播放器(Webapp),希望本文对大家学WEBAPP有所帮助。

        本文将带你了解WEBAPP开发之基于Vue.js的音乐播放器(Webapp),希望本文对大家学WEBAPP有所帮助。




概述
项目是基于Vue.js,成品是一个移动端的音乐播放器,来源于imooc的实战课程。自己动手实践并加以修改拓展。
项目的大致流程是Vue-cli构建开发环境,分析需求,设计构思,规划目录结构,开始编码。
视图层


推荐页
歌手页

歌手详情


歌曲排行榜

排行榜详情


搜索页
用户中心


数据来源
所有数据都来自于QQ音乐,抓取自QQ的接口,大部分接口都是JSONP,抓取比较容易,其中一些接口限制了host,不能直接抓取,采用的方法是用axios代理,设置header,以此绕过host的限制。
PS:具体代码请看prod.server.js文件
技术栈

Vue
Vuex
Vue-Router
Vue-cli
Stylus
Axios
ESlint
Better-scroll

src目录结构







难点
player组件
讲一讲player播放器组件,播放器组件可谓是整个项目的核心,当然数据处理和用户体验方面也是不简单的(逃。
播放器是全局组件,放在App.vue下面,通过Vuex传递数据,触发action提交mutation,从而使播放器开始工作。当然,其中的数据交互说复杂也不是很复杂,就是要花多点时间理解,player组件由多个基础组件构成,具体请看项目代码,下面上图








为了防止切换歌曲时点击速度过快导致歌曲播放错误,使用了audio的onplayAPI,结合Vuex获取到数据,判断当前歌曲数据请求到才可以切换下一首歌曲,判断函数如下

ready(){
this.songReady=true
}

数据处理
通过调用QQ音乐的JSONP接口,获取的数据并不能直接拿来用,需要做进一步的规格化,达到我们使用的要求,所以在这方面单独封装了一个class来处理这方面的数据,具体请看src/common/js/song.js
在请求JSONP的时候,用到了一个JSONP库,这个库代码十分简短,只有几十行,有兴趣的同学可以学习下。
使用时,就是将请求的参数拼接在请求url上,然后调用这个库的jsonp方法。所以,在此封装了两个函数,一个是将参数拼接在url上,另一个是将库里面的jsonp方法Promise化,方便我们使用,具体请查看src/common/js/jsonp.js。
将请求的数据格式化后再通过Vuex传递,组件间共享,实现歌曲的播放切换等。
交互体验
该项目的很多地方都涉及到滚动,包括下拉滚动,下拉滚动刷新等。这里面用到了一个库(better-scroll),来实现所有涉及到的滚动,建议学习下它的API。
其他动画包括了Vue的transition动画,路由之间切换时的简单动画,播放器打开时的动画,这个地方比较难,也比较好玩。
打开页面时的加载Loading效果,其实就是一个Loading组件,也比较简单。
为了减少流量,图片加载使用了懒加载的方式,滚动时再加载真实的图片。
具体效果请自身体验:)
效果



构建
开发环境
#installdependencies
npminstall

#servewithhotreloadatlocalhost:8080
npmrundev

#rune2etests
npmrune2e

#runalltests
npmtest

生产环境
#buildforproductionwithminification
npmrunbuild
#run
nodeprod.server.js



本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之WebApp频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程