Я строю чрезвычайно растягивающееся приложение React, и я использую SSR для SEO. Но я не знаю, как обращаться с URL

Как: пользователь может напрямую приземлиться на этот URL, domian.com/delhi/cardioлог

На бэкэнде у меня есть система идентификации компонентов для URL, которая для этого случая является «специализированной» компонентом в разделе «Расположение: компонент

Я не могу идти так

<Rout path={"delhi"}>
    <Location/>
</Route>

Потому что это дело это Дели. Но для другого пользователя это будет другое название города, я хочу отразить другой город в URL, но для того, чтобы оказать тот же компонент, из-за лучшего SEO. SEO - это сердце моего приложения.

Я буквально новичок в таком виде вещей. Пожалуйста, проведите меня.

1
PURUSHOTTAM SHUKLA 28 Сен 2019 в 22:23

1 ответ

Лучший ответ

Я бы порекомендовал добавить некоторую структуру на путь, который облегчает вам возможность найти местоположение, скажем:

<Route path='/search/:city/:specialty' component={Specialty} />

Так что это будет соответствовать domian.com/search/delhi/cardiologist. Вы можете настроить его к тому, что имеет смысл, это может даже быть коротким буквом, как просто /go/, если вы обеспокоены длиной URL из-за SEO.

Затем внутри специального компонента вы можете использовать match.params.city и match.params.specialty, чтобы получить параметры, которые вы ищете:

function Specialty({ match }) {
  const { city, specialty } = match.params;

  return (
    <p>Search for {specialty} in the city of {city}</p>
  );
}

Вы все еще можете реализовать маршрут Catch-All , используя путь, который вы хотите:

<Route path='/:city/:specialty' component={Specialty} />

Тем не менее, это потребует всегда устанавливать маршрут в конце, чтобы он только приземлился на ваш компонент <Specialty />, если он не соответствует ни одному другому пути, которое у вас есть.

0
Yuan-Hao Chiang 28 Сен 2019 в 21:00