Я немного озадачен тем, как правильно использовать useMemo. Читая здесь ( Должен ли я обернуть каждую опору с помощью useCallback или useMemo, когда использовать эти хуки? ), это говорит о том, что я должен использовать это для дорогих детей , так что это значит точно? Может кто-нибудь привести пример из реальной жизни?
Я создал новый проект React, играя с двумя разными подходами.
Вы можете проверить полный код здесь (на той же странице вы можете переключиться с одного метода на другой):
https://codesandbox.io/s/lucid-rgb-fz60n
В этом первом примере я передаюAppContext
объект, содержащий userState
и setUserState
(зарегистрирован или нет).
const [userState, setUserState] = React.useReducer(reducer, initialUserState);
const appState = {
userState,
setUserState
}
<AppContext.Provider value={appState}>
Будет ли этот подход приемлемым?
Во втором примере я использую useMemo:
const [userState, setUserState] = React.useReducer(reducer, initialUserState);
const value = React.useMemo(() => {
return {
userState,
setUserState
};
}, [userState]);
<AppContext.Provider value={value}>
Так что я полагаю, что использовать Memo во втором случае это не лучший выбор, так как дети не стоят дорого . Это правильно?