音乐播放器
项目地址
前台:http://www.huagecloud.top:8092/
后台:http://www.huagecloud.top:8091/
开发问题记录
- 布局问题,flex布局只针对一维,复杂布局需要grif
- 播放条的点击,拖拽(支持全屏拖拽)的事件兼容,和实现
- 播放条的滚动,结束回滚设计
- 网易云api部署到服务器的工具选择问题
- 本地开发环境访问网易云api的登录问题,实际上是跨域问题,浏览器的同源策略拦截导致,需要设置代理,后端用cor,前端 是http-proxy 4/2
- audio获取完资源但出现滚动条不滚动问题,初步怀疑资源加载问题----滚动条长度undefined 4/3
- 初始化页面对于异步请求的处理问题,promise的链式调用异步化同步,但还是有些许问题
- 采用redux个人觉得需要注意的点,
- 需要共享的数据一定要提前确定好,类型,名字,而且尽量数量要少;这次做抽屉列表切换歌曲就出现数据共享不齐
- 对于请求获得的数据作为初始化数据,需要对组件渲染做空判断,因为网络请求是异步的,数据加载终究慢过网页渲染,在目前初学者情况下,建议在componentDidMount方法 内开始异步请求,避免与渲染组件产生排斥,待数据获取后react自然会重新渲染
- 4/7 问题,列表歌曲信息切换显示成功,但audio对象的资源没有重新load,初步觉得audio对象也需要共享-----采用pubsubjs解决,避免过多内容的共享(补充redux的store.getState()方法虽然是深拷贝,但是对于audio对象这种复合对象考虑会出问题则不做考虑)
- 4.11 问题:当切换歌曲不会自动播放,promise的使用无法奏效;采用audio两种监听方式解决:另一种监听事件控制页面初始化不会自动播放音乐(另外也对vip歌曲/没有歌曲的情况修改判断条件:这种情况duration值为NaN)另外留一个小问题:audio播放完毕后,其资源是会自动load
- 4.17问题:封装了promise请求,发现一直以来先检验登录状态在是否登录的顺序问题原来是data里的数据里的account属性外还多一层data属性
- 4.18问题:部署上线+nginx代理完所需接口基本pc端能正常运行,但是进度条的走向有问题(估计和curtaintime属性有关)
- 加载歌单过于耗时,后续将考虑类似图片懒加载的方式进行优化