Refs are for state that needs to be synchronized between threads. If you need to keep track of a bunch of different things and you will sometimes need to do operations that write to several of the things at once, use refs. Any time you have multiple different pieces of state, using refs isn't a bad idea.
原子用于需要在线程之间同步的独立状态。如果您永远不需要同时更改 atom 的状态和其他任何内容,那么使用 at atom 是安全的(特别是,如果整个程序中只有一个状态,那么您可以将其放入一个 atom 中)。作为一个重要的例子,如果你试图缓存一个函数的返回值(即制表它) ,使用一个原子可能是安全的——这个状态对于函数之外的所有东西都是不可见的,所以你不需要担心函数内部的状态改变会把任何东西搞乱。