react-loadable-library
v1.0.0
Published
Code split any library using React renderProps
Downloads
12
Readme
Use the power of renderprop to delived a Library as a React component. Based on React-lodable. Does not support SSR and React Suspense. Use react-imported-library if you are looking for them.
- ⛅️ You can codesplit momentjs, you may async load any library and use it.
- 🔒 Written in TypeScript.
Usage
Have you heard, than moment.js is super hudge? Code split it!
import {importedLibrary, importedLibraryDefault, setConfig} from 'react-loadable-library';
// do you need SSR support? Probably not (affect react-imported-component settings)
setConfig({SSR: false});
// this will import `default` export
const Moment = importedLibraryDefault( () => import('momentjs'));
<Moment>
{ (momentjs) => <span> {momentjs(date).format(FORMAT)}
</Moment>
May be you have a small library, you may use somewhere inside your components?
Codesplit it!
import {importedLibrary} from 'react-loadable-library';
const Utils = importedLibrary( () => import('./utils.js'));
<Utils>
{ ({a,b,c }) => <span> {a(b+c())}
</Utils>
May be you also have to caclucate something heavy, not to do it on every render
?
// you may use "initialization hook" to offload some computations
<Utils
initial={ ({a,b,c}) => ({ result: a(b+c()) })}
>
{(_,state) => <span>{state.result}</span>}
</Utils>
API
importedLibrary(
importer
, options?): Componentimporter
is animport
statement, or any Promise resolver- options
- options.async:boolean - enables React.suspense, ie throws a Promise on loading
- options.exportPicker - allows you to "pick" export from the original file
importedLibraryDefault - is just importedLibrary with exportPicker configured to pick
.default
Component
initial: (library: T) => K;
- state initializatorchildren: (library: T, state: K) => React.ReactNode
- function-as-childrenerror: ReactComponent
- error indicatorloading: ReactComponent
- unthrottled loading indicator.
Licence
MIT