json - 我应该在组件之间传递 json 还是 dom-nodes?
问题描述
我正在使用 useContext 和 setState 挂钩在我的网站上共享一系列音轨。我有一些播放列表组件可以将曲目添加/删除到全局播放列表以及音频元素的包装器,例如可以在当前播放完成时检索下一个曲目。
播放列表都使用相同的组件。每个 Track 基本上只是一个包含 id、title、url.. 等的<tr>
with 。<td>
我使用 json 生成这些。
现在我的问题是我应该在我的钩子中传递什么?因为我看到至少 3 个选项...我可以通过
传递 track_id 似乎最有效,但是.. 但是每当我需要曲目数据时.. 例如,要获取 url 或渲染,我需要找到可以嵌套在我的 json 后端中任何位置的对象。
传递 dom-node 似乎是错误的......但如果我想在其他地方呈现列表,它会很容易使用。
如果你传递track json对象..我随时都有我需要的所有数据..但我需要将它附加到所有track dom节点..这似乎也不对..
选项1。track.json 对象
{"title":"...","artist":"...","year":"..."}
选项 #2。<tr>
域节点
<tr><td>title</td><td>arist</td><td>year</td></tr>
key={track_id}
现在我显然想遵循最佳实践并尽可能高效..所以有人可以指出我正确的方向
解决方案
我想所有人都会做同样的事情。如果您传递一个 id 或 json,那么它仍然需要在 dom 节点中呈现才能查看,所以当您说传递一个 dom 节点时,您实际上只是传递了一个字符串。我是否正确地说,无论通过什么,它都需要通过某种功能才能从后端获取歌曲?如果是这样,那么我的建议是 json。
推荐阅读
- blockchain - 如何通过自己的区块链将加密货币从钱包转移到另一个钱包?
- c# - 任何对象上的可序列化过滤器
- c# - 发布“连接尝试失败”时,Docusign API 遇到超时
- python - 为什么我不能将自己的模块导入自己的代码?
- kubernetes - Helm 从地图中选择特定字段
- android-studio - 如何将元数据添加到从张量流文件转换的张量流精简版文件中
- ui-automation - 在使用空手道框架拖放 Web 元素方面需要帮助
- kotlin - 如何检查 Kotlin 中的三个数字是否不同?
- objective-c - root 用户如何以编程方式在 mac OSX 中以登录用户身份打开应用程序?
- html - CSS 列数和 CSS 转换