Андрей Федосеевsunblossom я абсолютно согласен с Антон Спирин , что это на джуна. Миддл уже должен иметь знания проектирования архитектуры, кроссбраузерные нюансы, отличные знания по структурам данных, SOLID/GRASP/Patterns. Способен сам написать билд пайплайн на вебпаке с hmr / async chunks и прочим. Ну и еще вагон всего.
PHPjedi, компоненты, которые передаёте в Route, получают props текущего роута: location, history, match. Компонент withRouter прокидывает эти же props любому компоненту, который передан в него. Это называется higher order component. https://reactjs.org/docs/higher-order-components.html
a000_000a, вот примеры, когда он нам помогает:
1) получение точных версий зависимостей (ибо зависимости зависимостей могут преподнести сюрпризы)
2) более быстрая установка зависимостей (команда npm ci отрабатывает в мгновение ока и дает точную копию зависимостей без модификации package-lock.json, в отличии от npm install)
2.1) используем после git pull после слияния feature веток
2.2) используем на CI для быстрых билдов
Раньше в npm были баги, когда package-lock всё время модифицировался. Попробуйте обновиться до последней версии.