我正在使用html5音频组件开发一个简单的音频播放器/反应。
我认为通量的一个关键原则是数据应该以单向流动。
动作 - >商店 - >成分
“商店”应该是真理的来源。
在这种特殊情况下遵循这些原则我遇到了困难,因为数据必须来自音频组件,例如mp3的持续时间是音频组件api的一部分,以及它的当前位置。
我想也许我可以使用一个动作将所有初始数据传递给并用新的轨道位置更新它(当用户正在播放剪辑时)但这感觉真的很丑......我怎么能遵守通量原则考虑到这一点?
答案 0 :(得分:3)
React Router的创建者之一喜欢说“谁拥有这些数据?”如果它是应用程序,那么它属于商店。如果它完全包含在组件中,那么该组件可以管理自己的状态。
在这种情况下,我认为最好的情况是它应该由组件本身处理。也许如果音频被中断/暂停,那么该动作可能反过来通知可以保存位置等的商店,但是如果页面上只有一个玩家,那可能就是这样。