Upgrade to Pro — share decks privately, control downloads, hide ads and more …

React Lightning Talk

React Lightning Talk

Quantifying React Best Practices

Avatar for jackhamburger

jackhamburger

May 08, 2017
Tweet

Other Decks in Technology

Transcript

  1. Why? •Everyone expects immediately-responsive web applications •Excessive rendering is the

    cause of many react performance issues •React fundamentals supersede last-minute optimizations
  2. The “key” Prop Me: I’m not really sure what the

    ‘key’ does. I should really learn about it... Me to me: Just add it blindly and move on
  3. The Setup •Comparison of Functional and Pure Components with and

    without keys on array mutations •Performance avg. over 5k iterations with component render time of 10ms •Functional : •Pure :
  4. The “key” Prop – Prepending to an Array Pure Components

    Key No Key name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : a name : b name : c name : d name : e
  5. The “key” Prop – Prepending to an Array Pure Components

    Key ~10.3 milliseconds No Key ~60.3 milliseconds name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : a name : b name : c name : d name : e name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : f – key : 6 name : a name : b name : c name : d name : e name : f
  6. The “key” Prop – Prepending to an Array Functional Components

    Key No Key name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : a name : b name : c name : d name : e
  7. The “key” Prop – Prepending to an Array Functional Components

    Key ~60.1 ms No Key ~60.3 ms name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : a name : b name : c name : d name : e name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : f – key : 6 name : a name : b name : c name : d name : e name : f
  8. The “key” Prop – Swapping Array elements Pure Components Key

    No Key name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : a name : b name : c name : d name : e
  9. The “key” Prop – Swapping Array elements Pure Components Key

    ~1.3 ms No Key ~19.9 ms name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : a name : b name : c name : d name : e name : a – key : 1 name : d – key : 4 name : c – key : 3 name : b – key : 2 name : e – key : 5 name : a name : d name : c name : b name : e
  10. The “key” Prop – Swapping Array elements Functional Components Key

    No Key name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : e – key : 5 name : a name : b name : c name : d name : e
  11. The “key” Prop – Swapping Array elements Functional Components Key

    ~50.4 ms No Key ~50.0 ms name : a – key : 1 name : b – key : 2 name : c – key : 3 name : d – key : 4 name : f – key : 5 name : a name : b name : c name : d name : e name : a – key : 1 name : d – key : 4 name : c – key : 3 name : b – key : 2 name : e – key : 5 name : a name : d name : c name : b name : e