{"_id":"@diablohu/react-router-v3","_rev":"1-361fdcb5d82296a2197c3cd05ded1f97","name":"@diablohu/react-router-v3","dist-tags":{"latest":"3.2.7"},"versions":{"3.2.7":{"name":"@diablohu/react-router-v3","version":"3.2.7","description":"A complete routing library for React","main":"lib/index","module":"es/index","jsnext:main":"es/index","repository":{"type":"git","url":"https://github.com/cmux/react-router-v3/tree/v3"},"homepage":"https://github.com/cmux/react-router-v3/tree/v3#readme","bugs":{"url":"https://github.com/cmux/react-router-v3/tree/v3/issues"},"scripts":{"build":"npm run build-cjs && npm run build-es","build-cjs":"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore __tests__","build-es":"rimraf es && cross-env BABEL_ENV=es babel ./modules -d es --ignore __tests__","build-umd":"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js","build-min":"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js","lint":"eslint examples modules scripts tools *.js","prepublishOnly":"node ./scripts/build.js","start":"node examples/server.js","test":"npm run lint && npm run test-node && npm run test-browser","test-browser":"cross-env NODE_ENV=test karma start","test-node":"cross-env NODE_ENV=test mocha --require babel-register tests.node.js","commit":"node ./node_modules/cz-customizable/standalone.js","prepare":"husky install","up":"yarn upgrade-interactive --latest"},"authors":["Ryan Florence","Michael Jackson"],"license":"MIT","dependencies":{"create-react-class":"^15.5.1","history":"^3.0.0","hoist-non-react-statics":"^3.3.2","invariant":"^2.2.1","loose-envify":"^1.2.0","prop-types":"^15.7.2","react-is":"^16.13.0","warning":"^3.0.0"},"peerDependencies":{"react":"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"},"devDependencies":{"@commitlint/cli":"^12.1.1","@commitlint/config-conventional":"^12.1.1","babel-cli":"^6.11.4","babel-core":"^6.13.2","babel-eslint":"^7.2.1","babel-loader":"^6.2.4","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-dev-expression":"^0.2.1","babel-plugin-istanbul":"^4.1.1","babel-polyfill":"^6.13.0","babel-preset-es2015":"^6.13.2","babel-preset-react":"^6.11.1","babel-preset-stage-1":"^6.13.0","babel-register":"^6.11.6","bundle-loader":"^0.5.4","codecov":"^3.0.0","cross-env":"^5.1.3","css-loader":"^0.27.3","cz-customizable":"^6.3.0","eslint":"^7.27.0","eslint-config-koot":"^3.1.1","eslint-config-rackt":"^1.1.1","eslint-plugin-react":"^6.2.2","expect":"^1.20.2","express":"^4.14.0","express-urlrewrite":"^1.2.0","gzip-size":"^4.1.0","husky":"^6.0.0","karma":"^4.1.0","karma-browserstack-launcher":"^1.0.1","karma-chrome-launcher":"^2.0.0","karma-coverage":"^1.1.1","karma-mocha":"^1.1.1","karma-mocha-reporter":"^2.0.5","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","lint-staged":"^11.0.0","mocha":"^5.0.4","prettier":"^2.3.0","prettier-eslint":"^12.0.0","pretty-bytes":"^4.0.2","qs":"^6.2.1","react":"^17.0.2","react-addons-css-transition-group":"^15.6.0","react-dom":"^16.9.0","rimraf":"^2.5.4","style-loader":"^0.16.1","webpack":"^1.13.1","webpack-dev-middleware":"^1.6.1"},"browserify":{"transform":["loose-envify"]},"tags":["react","router"],"keywords":["react","react-component","routing","route","routes","router"],"publishConfig":{"access":"public"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,jsx,cjs,mjs,ts,tsx}":["eslint --fix","prettier --write"],"*.{json,md,css,less,sass,scss}":["prettier --write"]},"gitHead":"30aa361bdf4c7736d2f311944b116b587cb763c9","_id":"@diablohu/react-router-v3@3.2.7","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-8eM5ZNx8FlVIUntvb1da+FVhxyBU7NN68GX/zjRS0wb+Wg/792jHs3iCSAlZSbxz4shTbuHnuPDlRVuGfXkLmg==","shasum":"682643f0efacf39d8001645cb13ef379ef7b446e","tarball":"https://registry.npmjs.org/@diablohu/react-router-v3/-/react-router-v3-3.2.7.tgz","fileCount":93,"unpackedSize":592877,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr1ZLCRA9TVsSAnZWagAApQYP/12eemPq3q5SBvkq5viU\neTQ9w3NcmBwOmBOQ7liuJd+H3H9nHJs9x1C9HWdmd0DlYGZ7++eMp1em6kyV\nBoNnYdvwNQ6DhUl/PqtUimicC0rmLqgwW6EM6/OdijzvxovvbA9GygQpBy9G\nB/R+lxHlvV0bA+KrI71z1VObrKYy27u43Jgh3gujWgqEvZQw/sqV5ESdBZ7w\nDa61i+jiaKK5nWo5O3LnqjKrRuufEncW0OCl8PYCzSqlKRvl51O2fZlr4DHD\nDioKBxsCiSU7kfmaRcLx+tYF4INeJqmlE0J6X7Icoo7xyMDXSCFoeULc9R4M\nN6N5c4jAK7NZc8AOXUofIH2XfOvttb0jUI+E1in3VAVOIy/FjRrMkEBuVa7G\nxI/Sba35zHXuSbC5xAtDQLIF4p+C1PUQLH/a9zIWCPzREj+8nJ7jPiO4vE9B\na7zBqhSch01w+pwIXOFpQ97ZIeJixVLZ4q3SL/WmH+jxlFG3dEvU7reWmShe\nwYbi+ljLuuhSx/K53sAOKeI/aJjSE+8Al1uw/5D6Zj/hAzVB73CbIBEqZa5i\njsU0wLCrprkdfrMwRVyubHgUL2G02nQdTA+6AKudYreyCRLPaqVugl2T7/gG\nJ8KQtcTR9pVShbbqLqLc1M5VPhElC2lpN6RXPoEqdYpQfOcXW52f/QqgUs+S\nq09d\r\n=EPf0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxYu2KhL36hsAfAsx6JY78gCkdx/JycSwJr0Xfr+jOqgIhAOo1Ka19FC6Byq2b8sj/jBchJJ/O3/tcaFzb1blRdvc0"}]},"_npmUser":{"name":"diablohu","email":"diablohudream@gmail.com"},"directories":{},"maintainers":[{"name":"diablohu","email":"diablohudream@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-router-v3_3.2.7_1622103627404_0.8553944176166384"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-27T08:20:27.342Z","3.2.7":"2021-05-27T08:20:27.616Z","modified":"2022-04-05T04:21:07.092Z"},"maintainers":[{"name":"diablohu","email":"diablohudream@gmail.com"}],"description":"A complete routing library for React","homepage":"https://github.com/cmux/react-router-v3/tree/v3#readme","keywords":["react","react-component","routing","route","routes","router"],"repository":{"type":"git","url":"https://github.com/cmux/react-router-v3/tree/v3"},"bugs":{"url":"https://github.com/cmux/react-router-v3/tree/v3/issues"},"license":"MIT","readme":"# React Router [![Travis][build-badge]][build] [![npm package][npm-badge]][npm]\r\n\r\n<img src=\"/logo/vertical@2x.png\" height=\"150\"/>\r\n\r\nReact Router is a complete routing library for [React](https://facebook.github.io/react).\r\n\r\nReact Router keeps your UI in sync with the URL. It has a simple API with powerful features like lazy code loading, dynamic route matching, and location transition handling built right in. Make the URL your first thought, not an after-thought.\r\n\r\n[![Codecov][codecov-badge]][codecov]\r\n[![Discord][discord-badge]][discord]\r\n\r\n### 4.0 is here!\r\n\r\nThe next version of React Router (4.0) has been released! Check out the `master` branch.\r\n\r\n[4.0 Documentation](https://reacttraining.com/react-router/)\r\n\r\n### Docs & Help\r\n\r\n- [Tutorial – do this first!](https://github.com/reactjs/react-router-tutorial)\r\n- [Guides and API docs (v2, v3)](/docs)\r\n- [Troubleshooting guide](https://github.com/ReactTraining/react-router/blob/master/docs/Troubleshooting.md)\r\n- [Changelog](/CHANGES.md)\r\n- [Stack Overflow](http://stackoverflow.com/questions/tagged/react-router)\r\n- [CodePen boilerplate](http://codepen.io/anon/pen/xwQZdy?editors=001) for bug reports\r\n\r\n**Older Versions:**\r\n\r\n- 0.13.x - [docs](https://github.com/ReactTraining/react-router/tree/v0.13.6/doc) / [guides](https://github.com/ReactTraining/react-router/tree/v0.13.6/docs/guides) / [code](https://github.com/ReactTraining/react-router/tree/v0.13.6) / [upgrade guide](/upgrade-guides/v1.0.0.md)\r\n- 1.0.x - [docs](https://github.com/ReactTraining/react-router/tree/1.0.x/docs) / [code](https://github.com/ReactTraining/react-router/tree/1.0.x) / [upgrade guide](/upgrade-guides/v2.0.0.md)\r\n\r\nFor questions and support, please visit [our channel on Reactiflux](https://discord.gg/0ZcbPKXt5bYaNQ46) or [Stack Overflow](http://stackoverflow.com/questions/tagged/react-router).\r\n\r\n### Browser Support\r\n\r\nWe support all browsers and environments where React runs.\r\n\r\n### Installation\r\n\r\nUsing [npm](https://www.npmjs.com/):\r\n\r\n    $ npm install --save react-router\r\n\r\nThen with a module bundler like [webpack](https://webpack.github.io/) that supports either CommonJS or ES2015 modules, use as you would anything else:\r\n\r\n```js\r\n// using an ES6 transpiler, like babel\r\nimport { Router, Route, Link } from 'react-router'\r\n\r\n// not using an ES6 transpiler\r\nvar Router = require('react-router').Router\r\nvar Route = require('react-router').Route\r\nvar Link = require('react-router').Link\r\n```\r\n\r\nThe UMD build is also available on [unpkg](https://unpkg.com):\r\n\r\n```html\r\n<script src=\"https://unpkg.com/react-router/umd/ReactRouter.min.js\"></script>\r\n```\r\n\r\nYou can find the library on `window.ReactRouter`.\r\n\r\n### What's it look like?\r\n\r\n```js\r\nimport React from 'react'\r\nimport { render } from 'react-dom'\r\nimport { Router, Route, Link, browserHistory } from 'react-router'\r\n\r\nconst App = React.createClass({/*...*/})\r\nconst About = React.createClass({/*...*/})\r\nconst NoMatch = React.createClass({/*...*/})\r\n\r\nconst Users = React.createClass({\r\n  render() {\r\n    return (\r\n      <div>\r\n        <h1>Users</h1>\r\n        <div className=\"master\">\r\n          <ul>\r\n            {/* use Link to route around the app */}\r\n            {this.state.users.map(user => (\r\n              <li key={user.id}><Link to={`/user/${user.id}`}>{user.name}</Link></li>\r\n            ))}\r\n          </ul>\r\n        </div>\r\n        <div className=\"detail\">\r\n          {this.props.children}\r\n        </div>\r\n      </div>\r\n    )\r\n  }\r\n})\r\n\r\nconst User = React.createClass({\r\n  componentDidMount() {\r\n    this.setState({\r\n      // route components are rendered with useful information, like URL params\r\n      user: findUserById(this.props.params.userId)\r\n    })\r\n  },\r\n\r\n  render() {\r\n    return (\r\n      <div>\r\n        <h2>{this.state.user.name}</h2>\r\n        {/* etc. */}\r\n      </div>\r\n    )\r\n  }\r\n})\r\n\r\n// Declarative route configuration (could also load this config lazily\r\n// instead, all you really need is a single root route, you don't need to\r\n// colocate the entire config).\r\nrender((\r\n  <Router history={browserHistory}>\r\n    <Route path=\"/\" component={App}>\r\n      <Route path=\"about\" component={About}/>\r\n      <Route path=\"users\" component={Users}>\r\n        <Route path=\"/user/:userId\" component={User}/>\r\n      </Route>\r\n      <Route path=\"*\" component={NoMatch}/>\r\n    </Route>\r\n  </Router>\r\n), document.getElementById('root'))\r\n```\r\n\r\nSee more in the [Introduction](/docs/Introduction.md), [Guides](/docs/guides/README.md), and [Examples](/examples).\r\n\r\n### Versioning and Stability\r\n\r\nWe want React Router to be a stable dependency that’s easy to keep current. We take the same approach to versioning as React.js itself: [React Versioning Scheme](https://facebook.github.io/react/blog/2016/02/19/new-versioning-scheme.html).\r\n\r\n### Thanks\r\n\r\nThanks to [our sponsors](/SPONSORS.md) for supporting the development of\r\nReact Router.\r\n\r\nReact Router was initially inspired by Ember's fantastic router. Many thanks to the Ember team.\r\n\r\nAlso, thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to run our build in real browsers.\r\n\r\n[build-badge]: https://img.shields.io/travis/ReactTraining/react-router/master.svg?style=flat-square\r\n[build]: https://travis-ci.org/ReactTraining/react-router\r\n\r\n[npm-badge]: https://img.shields.io/npm/v/react-router.svg?style=flat-square\r\n[npm]: https://www.npmjs.org/package/react-router\r\n\r\n[codecov-badge]: https://img.shields.io/codecov/c/github/ReactTraining/react-router/master.svg?style=flat-square\r\n[codecov]: https://codecov.io/gh/ReactTraining/react-router\r\n\r\n[discord-badge]: https://img.shields.io/badge/Discord-join%20chat%20%E2%86%92-738bd7.svg?style=flat-square\r\n[discord]: https://discord.gg/0ZcbPKXt5bYaNQ46\r\n","readmeFilename":"README.md"}