preact-lazy-route
preact-lazy-route
is a component built for preact-router. Using preact-lazy-route
in combination with a module bundler such as webpack, allows you to implement code splitting on routes with the option to perform server side rendering in your preact application.
Install
$ npm install --save preact-lazy-route
Usage
;;; const App = <Router> <LazyRoute path="/" component= import'./components/home' /> <LazyRoute path="/about" component= import'./components/about' /> <LazyRoute path="/settings" component= import'./components/settings' /> </Router>; ;
Loading Fallback
You can provide an optional loading component to be displayed while your component is being fetched.
<LazyRoute path="/" component= import'./components/home' loading=MyLoadingComponent />
Server Side Rendering
preact-lazy-route
also allows for you to define an optional server side rendering path:
; ... <LazyRoute path="/" component= import'./components/home' ssrPath=path useSsr=!processenvBROWSER />
You will need to set useSsr
to true
when rendering on the server by setting an environment variable in your node process or using webpack's define plugin for your webpack bundle.
Node Environment
$ NODE=true node index.js
<LazyRoute path="/" useSsr=processenvNODE />
Webpack
; entry: app: './src/app.jsx' plugins: 'process.env.BROWSER': JSON ;
<LazyRoute path="/" useSsr=!processenvbrowser />