3.0.0 • Published 8 years ago
react-routing-resolver v3.0.0
react-routing-resolver 
React Routing component, but it does't mount component. Instead of, It just resolve routing.
Features
- Tiny Routing library
- Not mount, but resolve path
- Support TypeScript
Install
Install with npm:
npm install react-routing-resolverUsage
Overview components
use <Router> and <Route> for declarative routing.
<Router> component
<Router> component is a parent of <Route> component.
<Router>
<Route />
<Route />
<Route />
</Router><Router> props
history: a instance of history package- the location path is
history.location.pathnameat all times
- the location path is
When the path is change, this library change the browser history by history.pushState.
And if the path match <Route pattern={pattern} onMatch={onMatch}>, call the onMatch handler.
import createHistory from "history/createBrowserHistory";
const history = createHistory();
<Router history={history}>
<Route pattern="/view/:id" onMatch={onViewChange}/>
<Route pattern="*" onMatch={onMatchOther}/>
</Router>;<Route> props
pattern: path pattern string- pattern is used of Path-to-RegExp
*is special symbol. This pattern is matched when other pattern is not matched.
onMatch: registeronMatchhandler that is called thepatternis match.- When used Named Parameters, pass the parameters object to
onMatchhandler.
- When used Named Parameters, pass the parameters object to
render: render function can return React Node for redering when match thepattern.
<Router {...props}>
{/* `<Route>` should be in `<Router />` */}
<Route pattern="/view/:id" onMatch={onViewChange}/>
</Router><Router {...props}>
{/* `<Route>` should be in `<Router />` */}
<Route pattern="/user/:name" onMatch={onViewChange} render={({ name }) => <h1>{name}</h1}/>
</Router>Example of <Router> and <Route>
import createHistory from "history/createBrowserHistory";
const history = createHistory();
import {Router, Route} from "react-routing-resolver";
// pass `:id` as parameters object
const onViewChange = ({ id }) => {
};
// not match any
const onMatchOther = () => {
};
<Router history={history}>
<Route pattern="/view/:id" onMatch={onViewChange}/>
<Route pattern="*" onMatch={onMatchOther}/>
</Router>;See __test__ for more details.
Reference
- tj/react-enroute: React router with a small footprint for modern browsers
- lapwinglabs/enroute: tiny functional router
- You might not need React Router
- It is similar approach.
Changelog
See Releases page.
Running tests
Install devDependencies and Run npm test:
npm i -d && npm testContributing
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
Author
License
MIT © azu