使用这样的模式安全吗:
const appLoaders = useMemo(() => React.createRef(), [])
问题是我在useEffect中使用了这个ref,它在依赖数组中是必需的(穷举deps(。上面的模式起到了作用,一切似乎都能正常工作——如果没有备忘录,当我把ref放在依赖数组中时,应用程序就会不断地重新发布。
我只是想知道在某些情况下是否有一些"陷阱"会让我感到惊讶。
您的版本没有任何问题,但
const appLoaders = useRef();
看起来要短得多,而且做得完全一样(重新渲染之间的引用相等,我们设置初始值,更改值不会导致重新渲染(。
PS事实上,useRef
并不是React.createRef
的替代品(它们有不同的用途,但名称相似,有时人们会误解/误用(,所以不要被相似性所混淆。
但在这种特殊情况下,它们绝对是可互换的