Почему вам стоит попробовать @reach/router

React.js внешний фреймворк

Недавно автор react-router написал еще один компонент вроде react-router@reach/router, и он чувствует себя прекрасно после того, как попробовал его. Если ваш проект только на веб-странице, я думаю, вы можете заменить свой реактивный маршрутизатор.

Ниже приведены все действительно хорошие моменты, которые я видел до сих пор.

  1. Небольшой, всего 4 КБ, что примерно на 40 КБ меньше, чем у react-router после сжатия.

  2. меньше конфигурации

    а. для реакции-маршрутизатора требуется 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
    
    
  3. лучше использовать

    А. Когда вы хотите перейти на страницу

    // 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;
    
  4. В основном тот же API, стоимость обучения очень низкая

  5. Исходный код очень простой, всего 3 файла и 900 строк.Если вы хотите глубоко понять, как реализована маршрутизация одностраничного приложения,reach-router определенно является отличным исходным материалом.

Не говори, иди и посмотриGitHub.com/reach/route…