我已经看到很多关于为什么你不应该将 ReactuseCallback
与空的依赖列表一起使用的描述(这在逻辑上是有意义的),但我一直在试图弄清楚将它与redux-toolkit一起使用时是否有性能提升,当依赖列表包含 RT 对象时。(该应用程序对于一个用户来说已经足够高效,没有明显的差异,所以我希望总体上做“正确的事情”。)
一个例子:
export const HomeSettings = () => {
// redux-toolkit
const { data, error, isLoading } = useGetUserQuery();
const [updateUser] = useUpdateUserMutation();
//useCallback providing an actual optimization here?
const changeDataFilterOption = useCallback(
(option: string) => {
const someObj = someFunc(option, data);
updateUser(someObj);
},
[data, updateUser]
);
//useMemo optimizing anything here?
const itemList = useMemo(() => getListOfThings(data), [data]);
if (isLoading) {
return <LoadingMessage />;
}
if (error) {
return <ErrorLoadingDataMessage />;
}
return (
<div onClick={changeDataFilterOption}>
onClick is silly here, just illustrating the point
<div>{itemList}</div>
</div>
);
}
以这种方式使用redux-toolkit ,记忆化我的回调和变量有什么好处吗?