Skip to content

Some demo code to showcase converting an app to using React hooks

Notifications You must be signed in to change notification settings

spiderbites/hookchat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hookchat

Some demo code to showcase converting an app to using React hooks.

Usage

First get this API up and running: https://github.com/spiderbites/hookchat-api

Then...

yarn install
yarn start

In ./src/index.js, swap the import statement to move between the classic version and the hooks version.

React.memo

Docs

tl;dr Wrap a functional component with React.memo to only re-render when props change. If the props don't change, "React will skip rendering the component, and reuse the last rendered result."

The images below were produced using the React Dev Tools profiler.

Note that in reality you'd want to use a windowing solution to render long lists of messages, this is simply for demonstration.

Flame chart

The grey bars indicate message components were not re-rendered. Also note the total time for the commit phases.

Flame chart for un-memoized message component

Flame chart for memoized message component

Ranked chart

Each bar in the chart represents a component, ordered by how long they took to render.

Ranked chart for un-memoized message component

Ranked chart for memoized message component

Flame chart for 200 messages

Flame chart for un-memoized message component with approx 200 messages

Flame chart for memoized message component approx 200 messages

About

Some demo code to showcase converting an app to using React hooks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published