Мне было интересно, как лучше всего в ReactJS обновлять содержимое компонента в зависимости от URL-адреса. Допустим, у меня есть панель навигации с некоторыми кнопками. Я хочу отображать некоторые кнопки в зависимости от URL-адреса.
Например, когда URL-адрес /home
Я хочу, чтобы моя панель навигации была:
<nav>
<button>Button 1</button>
<button>Button 2</button>
<button>Button 3</button>
</nav>
И когда это /about
Я хочу
<nav>
<button>Button 2</button>
</nav>
Мой основной компонент будет примерно таким:
<Router>
<Header />
<Switch>
<Route path="/home">
<Home />
</Route>
<Route path="/about">
<About />
</Route>
</Switch>
</Router>
Итак, моя панель навигации находится в компоненте <Header/>
. Мое первое предположение - использовать react-router
, чтобы получить текущий URL-адрес, а затем изменить то, что отображается в <Header/>
render() {
let buttons
if(location === "/home") {
buttons = <button>Button 1</button><button>Button 2</button><button>Button 3</button>
} else {
buttons = <button>Button 2</button>
}
return (
<nav>
{buttons}
</nav>
)
}
. Это хорошая практика? Есть ли способ лучше? Следует ли использовать react-redux
для условного рендеринга? (Я новичок в react-redux
и пытаюсь увидеть все возможности)
PS: код не идеален, потому что я быстро набрал его прямо в окне сообщения, извините за это.