shared-router v1.2.1
shared-router
Router helper for sharing history between applications
Synopsys
Dilling with large scalable frontend applications causes a lot of problems. The package targets one of those problems: routing. As you know React has no limitation of instances on one window, which can provide a good chance to start with microfrontend architecture. But when more than one application needs routing you have to think about sharing history, same matching routes, etc. shared-router package allows you to avoid all this problems.
Provided API
setPrefix
@param {prefix} string ['']Setting a prefix for routes for the applications that have been lazyloaded. Each time calling this function will override previous value. NOTE: call this function after the prefixed routes will be rendered.
createRouteUrl
@param {path} stringUse this function each time you initalize a route path. This will automaticly prefix your routes.
navigate
@param {url} string
@param {isAbsolute} boolean
@param {state} anyThis function provides an ability to programaticly navigate to needed route. Let's have an A application, with routes routeA and routeB, and also under second route we are loading another application B, with its routes routeC and routeD(NOTE: both applications need to use this package). So the end user must see following routes:
- routeA
- routeB/routeC
- routeB/routeD
Then after calling setPrefix(routeB) in the A application, you can easly navigate between B routes using navigate('/routeC') or navigate('/routeB'). The following structure is also relaible for application B if its standalone, the only difference is that in example case navigate function will prefix it with routeB, in the other case it will be just the passed argument.
history
Use this object to manage the browser history. For example you can pass it to the react-router-dom <Router> for sharing history between applications.
Playground
Play with example here