Объясните response-router и react-router-dom.

Маршрутизатор React под названием «Динамический маршрутизатор»

Во многих фреймворках, таких как Rails, Express.js и Anglerjs, мы используем статический маршрутизатор, который настраивается в начале вашего приложения. В приложении rails у нас есть файл routes.rb в этом файле, который мы создаем или маршрутизируем для запуска приложения с его контроллера.

Но здесь, с маршрутизатором React, забудьте об этом, мы можем настроить или маршрутизировать, когда захотим, в каком файле мы хотим, как мы хотим.

Простой пример

Я буду использовать create-react-app для создания этого примера, и нам нужно установить некоторые зависимости, такие как nodejs, npm внутри него и response-router-dom с помощью npm / yarn.

Создать проект:

в терминале написать

простой пример создания приложения-реакции

и переходит в его папку в терминале

cd простой пример

теперь мы находимся в простом примере, и теперь мы установим response-router-dom, используя npm, который уже установлен, мы все еще внутри терминала

npm установить реактивный маршрутизатор-дом

после установки всех зависимостей мы можем кодировать.

в файле index.js, созданном с помощью create-react-app, мы деформируем компонент ‹App /› компонентом Router ‹BrowserRouter›

// index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import { BrowserRouter } from 'react-router-dom';
ReactDOM.render(
{/* Router is the core of every react router component */}
<BrowserRouter>
  <App />
</BrowserRouter>
, document.getElementById('root'));
registerServiceWorker();

Компонент маршрутизатора в реагирующем маршрутизаторе

Он должен лежать в основе каждого приложения для реагирующего маршрутизатора, мы можем выбрать один из двух компонентов, ‹BrowserRouter› или ‹HashRouter›. Оба они создадут для вас специализированный объект history. и если у вас есть статический файл сервера, например, для работы с API, используйте HashRouter вместо BrowserRouter.

Маршрут, ссылка и NavLink

после инициализации первого шага использования компонента Route ‹BrowserRouter›, который предоставляется из response-router-dom. мы должны построить или настроить маршрут и ссылки для навигации по маршруту.

в App.js мы создадим навигационные ссылки и настроим его маршрут динамически, без необходимости в файле маршрутов, как в среде Rails. мы будем использовать компонент ‹NavLink› из response-router-dom с искаженными ссылками, например, и создать тег ‹a› в html. напишите код после конца тега ‹/header›
‹div className = 'nav'›

  <ul>
    <li><NavLink to="/home">Home</NavLink></li>
    <li><NavLink to="/next">Next</NavLink></li>
    <li><NavLink to="/last">Last</NavLink></li>
  </ul>
</div>

Теперь мы можем настроить маршрут компонента ‹NavLink›. но прежде чем сделать это, я хочу вкратце поговорить о компоненте ‹Link›. Мы можем использовать любой из компонентов ‹NavLink› или ‹Link› для навигации по настроенным маршрутам, но основное различие между ними, как я сейчас, это ‹NavLink› дает нам свойства activeClassName для создания класса для активной ссылки, наиболее используемого для css. Имя класса по умолчанию, созданное ‹NavLink›, - .active.

{/* activeClassName value can be an name to modify it in css styles */}
<NavLink activeClassName='any-name' to="/home">Home</NavLink>
{/* don't use the same in <Link> below is wrong use of <Link >*/}
<Link activeClassName='any-name' to="/home">Home</Link>

Настройте маршрут в файле App.js

<div className="App-intro">
  <Route path='/home' exact component={Home} />
  <Route path='/next' component={Next} />
  <Route path='/last' component={Last} />
  <Redirect to='/home' />
</div>

‹Route› отображает компонент, если он соответствует имени пути, например:

http://localhost:3000/home 

этот url ^ path будет отображать домашний компонент внутри компонента App.js. точные реквизиты, убедитесь, что путь находится в точности до дома, см. первый ‹NavLink›

приложение в основном готово, просто создайте Home.js, Next.js и Last.js и импортируйте их в начало App.js

// src/Home.js
import React from 'react';

let Home = () => {
 return(
   <div>
     <h1> Hey I'm Home </h1>
   </div>
  )
}

export default Home

Next.js и Last.js такие же, как и выше, только текст изменится

пример находится на github URL: https://github.com/mohammedOmer/simple-routing-in-react

Инструкция по установке внутри README.md в репозиторий.

Заключение

  • response-router-dom предоставит все компоненты response-router
  • ‹NavLink› лучше, чем ‹Link› для пользовательского интерфейса, если он находится в общем виде в виде верхнего или нижнего колонтитула.
  • config Router при запуске приложения, такого как index.js, для правильного запуска ‹Route›

Всего наилучшего взлома на Вашем пути. Мохаммед Алжефри Разработчик полного стека в ClickApps co, хлопните меня по кнопке хлопка ниже, если вам понравилась эта статья