lsqy / taro-music

🎉基于taro + taro-ui + redux + react-hooks + typescript 开发的网易云音乐小程序,taro3已升级完毕,目前正在使用react-hooks重构中(不定时更新)
MIT License
1.91k stars 389 forks source link

开始与暂停状态不一致 #150

Closed pushOkIsGo closed 1 year ago

pushOkIsGo commented 1 year ago

image

一个小的问题,就是在其它页面点击背景audio的开始暂停键不能够改变CMusic组件中的开始与暂停状态(就是状态不一致)

我建议的解决方法

  1. 我觉得在项目中audio应该是只能有一个的,没有道理创建多个audio
  2. 所以解决方法就是把这个audio做成单例模式(存放在仓库)
  3. 把一些监听函数也都可以提取出来,在仓库初始化的时候就可以进行监听了
  4. 后续进入这个组件也调用仓库中audio就能够保证状态的统一
lsqy commented 1 year ago

提出的建议很好,当时这样做的的原因是由于最开始taro1.x的时候不支持在入口文件中直接传入CMusic组件供不同页面直接复用,而是需要不同页面都引用下这个组件才可以 @pushOkIsGo

pushOkIsGo commented 1 year ago

包括我还有点其它的一些优化上面的建议,就是这个搜索结果的页面,写了1600多行代码,我觉得有非常多的重复代码,包括发请求啊,然后什么样式啊,我进行过简单的优化,我把一些不同的地方都进行过提取(给你简单看一下,也希望你能给出对我的代码建议,嘿嘿)

image

image

  1. 我把请求中不同的地方全部都提取了出来(如type,count),然后在点击tabs和下拉时加载数据就ok了;
  2. 包括我也把每个tabs的渲染函数也进行了提取(因为我觉得这个文件的代码太多了);
  3. 我发现他的点击事件也都是跳转到其它页面,只是需要携带的参数不同,因此我觉得可以将跳转地址也提取出来(当然我现在还没有这么做,这段时间看世界杯去了,哈哈)
  4. 包括我发现样式上面有很多都是一模一样的(只是换了一个类名,重新写了一遍),因为这边样式我都是抄代码,所以我最开始也没有注意,所以我也没有提取
pushOkIsGo commented 1 year ago

@lsqy

lsqy commented 1 year ago

有好的想法都可以自行fork尝试哈,项目主要是前几年开展的,是有一些可以优化的地方 @pushOkIsGo