使用 Recoil 时在哪里声明 Atom 重要吗?

Does it matter where you declare Atoms when using Recoil?

我正在查看文档的 入门 部分,但从声明 Atom 的文件的示例中不清楚。

在应用中在哪里声明一个特定的 Atom 重要吗?如果两个组件订阅同一个 Atom,我可以在一个组件的文件或另一个组件中声明该原子吗?还是我需要在两者中声明它?或者我需要在第三个文件中声明它吗?有最佳实践吗?

我的直觉告诉我应该在第三个文件中声明这些原子并将它们导入到需要它们的组件中,但我只是想确保我理解正确。

通常正确的做法是在一个模块中声明和导出反冲状态(atoms/selectors/etc.),然后将它们导入到使用它们的其他组件模块中。如果您的数据结构需要不同的方法,您会很清楚。

您可以研究这些主题中的 GitHub 个存储库以查看示例并提高您的信心: