frint-router
Router package for Frint
Guide
Installation
With npm:
$ npm install --save frint-router
Via unpkg CDN:
Usage
The classes exported by this package are all independent and can be used as is.
;// import BrowserRouterService from 'frint-router/BrowserRouterService';// import MemoryRouterService from 'frint-router/MemoryRouterService'; const router = ;const subscription = router;
The subscription will keep emitting new values every time there is a change in history.
Convention
To connect it well with other packages, we need to follow a convention of using the provider name router
:
;; const RootApp = ;
Direct imports
It is advised to import the appropriate router service class directly from the package, to make sure you are only bundling the services you explicitly need.
// will bundle only the individual HashRouterService; // will bring ALL the service classes;
API
The package exports three classes:
BrowserRouterService
: uses HTML5 History APIHashRouterService
: For legacy browsersMemoryRouterService
: useful for tests
All of them implement the same set of methods.
BrowserRouterService
constructor
Arguments
options
(Object
)
options.enableCache
(Boolean
): Enables caching, set totrue
by default.options.cacheLimit
(Number
): Maximum limit of entries to cache, set to10000
by default.
getHistory$
getHistory$()
Streams history as it changes over time.
Returns
Observable
: Streams history
Object.
Structure of history
object:
length: 1 // number of entries location: ... // like `window.location` action: 'PUSH' // either PUSH, REPLACE, or POP
getMatch$
getMatch$(pattern, options)
Keeps matching pattern against history as it keeps changing over time.
Arguments
pattern
(String
): Pattern to match againstoptions
(Object
)
options.exact
(Boolean
): Matches pattern exactly, defaults tofalse
.
Returns
Observable
: Streams null
if nothing matched, otherwise a matched object.
A matched object follows this structure:
url: '/' isExact: true params: key: 'value'
getMatch
getMatch(pattern, history, options)
Synchronous way of matching pattern
against provided history
.
Arguments
pattern
(String
): Pattern to match againsthistory
(Object
): History objectoptions
(Object
)
options.exact
(Boolean
)
Returns
Returns null
when nothing matched, or a matched object.
go
go(n)
Arguments
n
(Number
)
Returns
void
push
push(path, state)
Arguments
path
(String
)state
(Object
)
Returns
void
replace
replace(path, state)
Arguments
path
(String
)state
(Object
)
Returns
void
goBack
goBack()
Equivalent to go(-1)
Returns
void
goForward
goForward()
Returns
void
HashRouterService
Same as above.
MemoryRouterService
Same as above.