Why Did You Render Versions Save

why-did-you-render by Welldone Software monkey patches React to notify you about potentially avoidable re-renders. (Works with React Native as well.)

v6.1.1

3 years ago
  • Ignoring object getters because accessing them often errors and/or has side effects (fixing #184)
  • Updated all packages and improved the vscode development environment

v6.1.0

3 years ago

Now also tracks non-plain objects (like new User()).

Thank you @barakyosi!!

PR: https://github.com/welldone-software/why-did-you-render/pull/179 CLOSED ISSUE: https://github.com/welldone-software/why-did-you-render/issues/74

v6.0.5

3 years ago

fixed the bug "RangeError: Maximum call stack size exceeded" (#168) by making sure WDYR is not applied more than once under any circumstances.

v6.0.4

3 years ago
  • updated all packages, including security fixes
  • improved the code quality
    • updated test file imports
    • improved eslint rules
  • updated vscode settings files
    • added jest extension settings
    • added eslint autofix
  • improved the readme

v6.0.1

3 years ago

Breaking Changes

  • No longer minimizes the library.
    • The minimization created too many inconveniences.
    • It should only be used in dev, and it's small anyway.

Other Changes

  • Added support to React 17.
  • Added support to the new jsx-runtime transform from babel.
    • By the way, this might be a very useful thing for the library in the future.
  • Added a mechanism to test both React 16 and React 17

v6.0.0-rc.1

3 years ago

v6.0.0-rc.0

3 years ago

v5.0.0

3 years ago

Notice:

  • Support for React@17 is on it's way.

Breaking changes:

  • No longer tracks deep equals results in useMemo.
    • Added tests to children re-rendered as a result of useMemo or useCallback results:
      • logs if the different result got generated because of deep equals deps changes image
      • ignores the prop change if deps were different
  • No longer tracks re-renders as a result of useCallback invalidation due to deps changes (fixes #46)
    • This fix was brought to you by the one and only @Hypnosphi :)
  • Made logOwnerReasons true by default
  • Only build a minimized UMD version now and won't commit the built files to git anymore
  • Removed babel-plugin-lodash because lodash optimizations better are done by the user of the library
  • Removed building in babel-plugin-transform-classes because we build with a newer babel where it is not needed anymore

Enhancements:

  • Added a feature where upon request you can get a detailed diff between props. For example for the following:
        const sameObj = {a: {b: 'c'}}
        ReactDom.render(<Main containerProps={{style: {height: '100%'}, className: 'default-highchart', sameObj}} />, domElement)
        ReactDom.render(<Main containerProps={{style: {height: '100%'}, className: 'default-highchart', sameObj}} />, domElement)
    
    Since props are equal by value, you will see the following option that allows for the generation of a detailed diff report: image

Fixes

  • Only track hooks if they are supported

Readme

  • improved readme in general, including the installation tips

Dev

  • Added Travis pipelines that run lint, test, audit, and e2e tests for each PR.
  • Added a full e2e coverage using cypress that runs in the pipelines.
  • updated all dev packages

v5.0.0-rc.1

3 years ago

v4.3.1

3 years ago
  • fixed owner reasons bug in strict mode, also added a test
  • updated all dev packages