Hasty Treat - React Suspense

Published: March 18, 2019, 1 p.m.

b'

In this Hasty Treat, Scott and Wes talk about React Suspense \\u2014 what it is, how it works, support and more!

Sentry - Sponsor

If you want to know what\\u2019s happening with your errors, track them with\\xa0Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting\\xa0Sentry.io\\xa0and using the coupon code \\u201ctastytreat\\u201d.

Show Notes

Not live yet - it may/will change. Be warned!

3:59 - The problem we have with React right now

  • API calls
  • Image loading
  • Code splitting

7:16 - What is React Suspense?

  1. First we convert our async data fetching functions into\\xa0resources
  2. Resources can then be read inside render - above the return
  3. Resources can be read from cache
  4. Resources can be preloaded into a cache if you anticipate needing them
  5. Resources reads are blocking for that function - you can\\u2019t return JSX until the resource is read
  6. In your component that fetches data, there is no need to maintain a loading state
  7. Then, anywhere higher up in that tree, you can introduce a suspense component
  8. The suspense component can\\xa0detect\\xa0if any of it\\u2019s children are currently loading data
  9. If they are, we can then choose to show a loader via the\\xa0fallback\\xa0prop
  10. We can also choose to\\xa0show nothing via the maxDelay prop\\xa0\\u2014 this is helpful for fast connections that shouldn\\u2019t see the spinner for a short split-second

15:20 - Support

  • React.lazy and suspense for code splitting is already here
  • The React.lazy function lets you render a dynamic import as a regular component
  • Loadable Components is recommended if you need splitting with SSR
  • Data Resources is not here yet

Links

Tweet us your tasty treats!

'