Skip to content

Instantly share code, notes, and snippets.

@Zertz
Last active September 19, 2021 12:44
Show Gist options
  • Save Zertz/03e9719c0d6ab2f763abe74a1200c036 to your computer and use it in GitHub Desktop.
Save Zertz/03e9719c0d6ab2f763abe74a1200c036 to your computer and use it in GitHub Desktop.
useMemo vs. useState
function useGreetings(language) {
const [greetings, setGreetings] = useState()
// 1. language changes (render)
// 2. useEffect triggers (post-render)
// 3. greetings are updated (render)
useEffect(() => {
switch (language) {
case "fr": {
setGreetings(["salut", "bonjour"])
break
}
}
}, [language])
// 1. language changes (render)
// 2. useMemo triggers (same render)
const memoizedGreetings = useMemo(() => {
switch (language) {
case "fr": {
return ["salut", "bonjour"]
}
}
}, [language])
return memoizedGreetings
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment