React.lazy() vs React Loadable
Asked Answered
K

3

47

I was using react-loadable for some time for dynamic imports of my React components.

In the recent React release 16.6, the React team has included React.lazy() which also does a dynamic import.

Is there any benefit in using the react-loadable package still, or is it time to move to the new React version?

Kisung answered 29/10, 2018 at 10:26 Comment(0)
B
59

No, React Loadable should not be used anymore, because it is not being maintained.

It used to be the recommended way for lazy loading when rendering on the server side, while React.lazy only works on the client side.

The React team now recommends another library for server side rendering.

Quote from the React documentation:

Note: React.lazy and Suspense is not yet available for server-side rendering. If you want to do code-splitting in a server rendered app, we still recommend Loadable Components. It has a nice guide for bundle splitting with server-side rendering.

Brachyuran answered 29/10, 2018 at 10:32 Comment(3)
React-loadable – very popular, but unmaintained library. Made code spitting a popular thing. Issues are closed, so there is no community around and it is not compatible with Webpack v4+ and Babel v7+. If you use it, it is recommended to migrate to @loadable/component.Sulphurize
Thanks for the update, when I wrote this answer in 2018, react-loadable was still maintained and recommendedBrachyuran
Good one. I also converted my old React Loadable code into React.lazy(component) with Suspense wrapper.Ockham
S
2

If you're doing SSR you'll want to consider using Loadable instead of React.lazy, as suggested by the official React.lazy docs:

React.lazy and Suspense are not yet available for server-side rendering. If you want to do code-splitting in a server rendered app, we recommend Loadable Components. It has a nice guide for bundle splitting with server-side rendering.

Saylor answered 22/8, 2020 at 17:4 Comment(0)
B
1

As answered above, react-loadable is not maintained, now people would use @loadable/component. The module support various pattern.

Here is a clear Comparison:

comparison of React lazy and loadable/component For more detail, check here

Byrom answered 22/4, 2022 at 11:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.