Reactjs 字符串常量的useMoom

Reactjs 字符串常量的useMoom,reactjs,react-redux,Reactjs,React Redux,在一些代码中,我看到了下面useMemo的用法。 这有效吗?我一直在想这有什么好处,为什么我们不能简单地使用const呢 const id = React.useMemo(() => "sort_id", []); const将在每次渲染时重新实例化,而usemo将保留相同的引用,直到卸载/重新装载组件。因此这是有效的,建议在功能组件中定义这样的常量?这取决于您尝试执行的操作。如果您想要一个在任何情况下都不会更改并且必须在组件内部实例化的值(一个真正的“const”)

在一些代码中,我看到了下面useMemo的用法。 这有效吗?我一直在想这有什么好处,为什么我们不能简单地使用const呢

const id = React.useMemo(() => "sort_id", []);

const
将在每次渲染时重新实例化,而
usemo
将保留相同的引用,直到卸载/重新装载组件。

因此这是有效的,建议在功能组件中定义这样的常量?这取决于您尝试执行的操作。如果您想要一个在任何情况下都不会更改并且必须在组件内部实例化的值(一个真正的“const”),那么可以使用
usemo
。如果您是从组件外部(例如常量文件)填充该值,则这并不重要。请记住,react组件(挂钩外部)只不过是返回其他组件的函数。当函数超出范围时(即渲染完成后),任何
const
都超出范围,并在下次运行组件时重新实例化。
useMemo
技巧只是让值停留在渲染之间的钩子中。这是一个无法执行、无法读取的胡说八道
useMemo
主要用于派生过程计算量大的状态(换句话说,缓存在其他状态更改时重做的昂贵计算)。字符串不需要它,因为至少从语言用户的角度来看,字符串是按值比较的,而不是按引用比较的。唯一实际发生的事情是调用整个
useMemo
机制,以避免在每次调用时构造字符串,我向您保证后者的性能(可读性)更高。