音乐播放器

项目地址

前台:http://www.huagecloud.top:8092/
后台:http://www.huagecloud.top:8091/

开发问题记录

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