Рубрики
Без рубрики

Руководство автомата для React Router V4: скрытое значение конфигурации маршрута

Добро пожаловать в Руководство автостопных автомобилей для React Router V4, часть IV! Теперь, когда мы узнали о рекурсивных маршрутах, давайте вернемся к нашей исходной котельной, чтобы избежать проблем с смешиванием и научиться создавать массив конфигурации маршрута. Итак, просто чтобы получить немного, что мы сделали

Автор оригинала: Eduardo Vedes.

Добро пожаловать в Руководство автостопных автомобилей для React Router V4, часть IV!

Теперь, когда мы узнали о рекурсивных маршрутах, давайте вернемся к нашей исходной котельной, чтобы избежать проблем с смешиванием и научиться создавать массив конфигурации маршрута.

Итак, просто чтобы получить немного то, что мы сделали в начале, давайте посмотрим на наш начальный Маршруты.js файл:

Наше Маршруты Компонент возвращает Div с Навкар и а Переключатель где мы определили все маршруты нашего приложения.

Наш первый шаг в этой части 4 будет определять массив маршрутов.

Маршруты массива

Я посмотрел на наши маршруты и создал этот массив, который определяет каждый маршрут и подсчет, который мы имели в нашем приложении.

Отлично! Что теперь?!? ?

Refactor Старые Харкодируемые маршруты

Теперь давайте убраем наши жесткие маршруты и коммутатор!

Ага! До свидания все эти строки кода. Что мы действительно делаем?

Ну, мы отображаем массив карты с помощью обратного вызова ES6 (стрелка FAT), чтобы вернуть абстрактный компонент под названием Отказ Мы передаем в нее ключ (только для целей индексации реагирования), и мы также распространяем информацию о маршруте.

Составная часть

Тем временем нам нужно создать этот компонент. Я решил создать его отдельно и импортировать его в Маршруты.js файл.

Хорошо, это Компонент поднимает каждый маршрут, который вы передаете в него, и возвращая React Router <Маршрут/> Составная часть.

Как реквизит, у нас есть путь и метод рендера, который будет вызывать Route.comPonent. Вы хотите рендерировать (затем переходя в него разбросы, а подпункты, которые он должен знать).

Эти маршруты исходят с массива конфигурации маршрута – получили его? Отлично! ?

Topiclist (подпункта)

Это сказано, давайте сделаем добычу в Topiclist Компонент, поскольку это один приемный подпункты из массива конфигурации маршрута:

Итак, что здесь происходит? Наше Topiclist Теперь импортирует Компонент и повторное использование с маршрутами он получил.

Это также делает Маршруты. Как над подпундурами и повторяет процесс, сделанный в Маршруты.js файл.

Найдите минутку, чтобы понять это и играть с ним!

Все больше и больше подпункта

Как видите, это работает довольно хорошо. Он абстрагирован, есть разделение опасений. Является довольно простым в использовании нестандартный компонент или функция, которая не заботится о содержании маршрутизации. Это просто все равно, что вы ей питаете.

Что если мы хотели сделать больше подпункта?

Очень просто! Просто продолжайте расти или перепроектировать свои маршруты настроек конфигурации!

Видеть? Маршруты /Темы/: Topicid может быть просто массив, как его родительские маршруты. Но я решил сделать лучше и вызвать функцию, которая вызывает API и возвращает новый массив маршрутов (просто представьте, что это выбирает API?).

Так как мы можем проверить это в приложении?

Давайте поставить console.log внутри TopicDetail Компонент и проверьте, что он получает:

Я вызываю маршруты () в console.log Потому что сейчас этот подставку – это функция! Помнить? Все хорошо! ?

Да, мА! Мы сделали это! Мы получаем маршруты динамически и распространяем их в наши подпункты и компоненты. Это так здорово!

Домашние и неоднозначные маршруты

Ждать! Где наше Двигал Составная часть?

Хорошо, давайте представим это в нашу маршрут конфигурации Array:

Соблюдайте это : WhereTheheckisthat является переменным, потому что она имеет толстой кишкой до нее.

Что мы должны ожидать?

Давайте увидимся в действии:

Ух ты! На самом деле это рендеринг Двигал Но это также рендеринг Домашний вид . Почему?

Ну, что происходит, это то, что в нашей исходной котельной у нас было <Выключатель/> что подбирал первый <Маршрут/> Это соответствует пути, помните?

Так что теперь, как у нас нет коммутатора, он может сопоставить более одного пути за раз!

Они называются неоднозначными маршрутами. Маршрутизатор соответствует /Дом И в то же время /: WHERETHECHECKISTHAT Потому что это своего рода подстановочный знак, который принимает все.

Как нам это исправить?

Простой: хватает <Выключатель/> назад!

Как вы можете видеть выше, теперь /Главная оказывается в одиночестве, потому что <Выключатель/> Нашел его и вернул его немедленно.

Если вы положите неизвестный путь в URL-адрес, он запускает :/WHERETHECHECKISTHAT и делает Двигал компонент как по умолчанию.

Отличная работа! Все работает, как мы ожидали, и теперь у нас есть Мощный конфигурация массива маршрута который позволяет нам иметь много гибкости.

Это действительно скрытое значение имению абстракции и определение массива конфигурации маршрута!

Последний, но тем не менее важный

Это конец Руководства автомата для React Router V4.0!

Есть еще какие-то вещи, чтобы обратить внимание, но я предпочитаю позволить вам глубоко погружаться немного в котлах, которые мы построили и искали, что вам нужно в React Router Веб-сайт .

У меня было так весело делать это руководство, которое я думаю, я собираюсь начать писать все больше и больше:)

Это было хорошо не только потому, что я смог научить вас что-то, но и, потому что я также многому научился в этом процессе.

Github repo.

Изменения, которые я сделал в приложение, чтобы изготовить эту статью, можно найти в моем GitHub репо для части 4.

Библиография

Чтобы сделать эту статью, я использовал документацию React Router, которую вы можете найти здесь Отказ

Все остальные пользователи, которые я использовал, связаны в документе, чтобы добавить информацию или предоставить контекст к тому, что я пытался вам объяснить.

Эта статья является частью 4 серии, называемого «Руководство по автостопищему, чтобы React Router V4»

  • Часть I: Grok React Recter в 20 минут
  • Часть II: [Матч, местоположение, история] – ваши лучшие друзья!
  • Часть III: рекурсивные пути, до бесконечности и за его пределами!

? Большое спасибо!

Оригинал: “https://www.freecodecamp.org/news/hitchhikers-guide-to-react-router-v4-c98c39892399/”