Skip to content

Instantly share code, notes, and snippets.

@gvergnaud
Created May 12, 2023 12:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gvergnaud/4b7626eb59779316a4dc75634f0e37c9 to your computer and use it in GitHub Desktop.
Save gvergnaud/4b7626eb59779316a4dc75634f0e37c9 to your computer and use it in GitHub Desktop.
useEffect(() => {

})

<>
  <Child log1 />
  {console.log("log3")}
  <Child log2 />
</>

// prevents a re-render React.memo(Component, isShallowEqual) + equal function // le spread operator = tu peux passer des props unexpected, du coup isEqual peut etre couteux

// ne pas re-evaluer une valeur // Double memory / less CPU React.useMemo


useDeepMemo quand tu veux de la stabilité? pas sur


Pas utilser useMemo si ton truc est pas react memo? pas sur


useStableCallback tout le temps? mauvaise idee useCallback --> useStableCallback? pas toujours

getLabelForSeries = data => string getColorForSeries = data => string

// Child.tsx

React.useMemo(createReactElements, [getColorForSeries])

// tu peux pas utilsier useShallowMemo parce que tu as des objects nestés

// useDeepMemo timeseries data isEqual(timeseriesData) // 100 buckets * 200 series = 20k props to check!

<>
  <Child1 timeSeriesData unstable />
    <Child2 timeSeriesData unstable />

// si tu pars du principe que les composants attendent des references instable, tu dois faire 2 useDeepMemo! // tu paye 2 fois to deep equal

// Solution de Univiz

// Univiz is in the middle of the tree // it turns unstable references into stable ones // Sub components don't have to use useDeepMemo or ony performance hook unless they have state.

// Les gros objects to memo par default parce que tu pourras pas faire de useDeepMemo // les ptits trucs pas forcement // component shield meme qui stabilise les references

// a chaque fois que tu transformes un gros object -> useMemo map data => { ...data, oups: true }

//

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment