lazy-with-preload
Version:
React lazy with preload
85 lines (60 loc) • 2.24 kB
Markdown






This Npm package will be useful on any ReactJS applications for avoiding long load modules after switching routes. Especially effectively when you have a big bundle of modules which you need to use on switching between routes and you want to minimise primary chunk.
[](https://www.npmjs.com/package/lazy-with-preload)
[](https://github.com/miklblitz/react-lazy-load)
[](https://codesandbox.io/s/lazy-load-reactjs-24fin)
```
yarn add lazy-with-preload
```
or
```
npm i --save lazy-with-preload
```
```javascript
import lazyWithPreload from 'lazy-with-preload';
const OtherComponent = lazyWithPreload(() => import('./OtherComponent'));
// somewhere in your component
// ...
OtherComponent.preload();
// ...
```
```javascript
import lazyWithPreload from 'lazy-with-preload';
const OtherComponent = lazyWithPreload(() => import('./OtherComponent'));
// ...
<Link
to="/other"
// This component will be needed soon. Let's preload it!
onMouseOver={() => OtherComponent.preload()}
>
link OtherComponent
</Link>
// ...
```
or
```javascript
import { useEffect } from 'react';
import lazyWithPreload from 'lazy-with-preload';
const OtherComponent1 = lazyWithPreload(() => import('./OtherComponent1'));
const OtherComponent2 = lazyWithPreload(() => import('./OtherComponent2'));
const OtherComponent3 = lazyWithPreload(() => import('./OtherComponent3'));
export const SomeComponent = () => {
useEffect(() => {
OtherComponent1.preload();
OtherComponent2.preload();
OtherComponent3.preload();
});
return <div>
/* here is your code */
</div>;
};
```