Недавно автор react-router написал еще один компонент вроде react-router@reach/router
, и он чувствует себя прекрасно после того, как попробовал его. Если ваш проект только на веб-странице, я думаю, вы можете заменить свой реактивный маршрутизатор.
Ниже приведены все действительно хорошие моменты, которые я видел до сих пор.
-
Небольшой, всего 4 КБ, что примерно на 40 КБ меньше, чем у react-router после сжатия.
-
меньше конфигурации
а. для реакции-маршрутизатора требуется 3 пакета (
history
,react-router-dom
,react-router-redux
), требуется только один рич-маршрутизатор.б. Нет необходимости настраивать информацию о маршрутизаторе в магазине.
в) использовать историю, которую не нужно отображать
// in store config file //react-router import { routerMiddleware } from 'react-router-redux'; import createHistory from 'history/createBrowserHistory'; const history = createHistory(); const middleware = routerMiddleware(history); export { history }; //reach/router, nothing
-
лучше использовать
А. Когда вы хотите перейти на страницу
// react-router import { push } from 'react-router-redux'; import { PropTypes } from 'prop-types'; // use it this.context.store.dispatch(push('/see-you')); FooComponent.contextTypes = { store: PropTypes.object, };
// reach/router import { navigate } from "@reach/router"; navigate(`/lol`);
б. Когда вы хотите взять параметры в URL-адресе
// react-router import { withRouter } from 'react-router-dom'; import { PropTypes } from 'prop-types'; //use it const { match: { params: { iAmHere } } } = this.props; FooComponent.propTypes = { match: PropTypes.object, }; export default withRouter(FooComponent);
// reach/router const { iAmHere } = this.props;
-
В основном тот же API, стоимость обучения очень низкая
-
Исходный код очень простой, всего 3 файла и 900 строк.Если вы хотите глубоко понять, как реализована маршрутизация одностраничного приложения,reach-router определенно является отличным исходным материалом.
Не говори, иди и посмотриGitHub.com/reach/route…