📱
特定のpath配下のみreact-transition-groupを使ってページ遷移にスライドアニメーションをつける方法
こんにちは!
以前 react-transition-groupを使ってページ遷移にスライドアニメーションをつける方法 という記事を書きました。
今回はその続きで特定のpath配下のみページ遷移にアニメーションをつける方法を紹介します。
方法
<Routes location={location}>
<Route path="/slide/*" element={<Slide />} />
<Route path="/no-slide" element={<NoSlide />} />
<Route path="/no-slide2" element={<NoSlide2 />} />
</Routes>
このようにアニメーションを適応したいpathに*
を使用します。
そしてSlideコンポーネント内で以下のようにTransitionGroup、CSSTransitionで囲って再度Routeを定義することで/slide
配下のみスライドアニメーションを設定することができます。
<TransitionGroup component="div" className="App">
<CSSTransition key={pathname} timeout={timeout} classNames="slider">
<div className={getDirection(pathname)}>
<Routes location={location}>
<Route path="/" element={<A />} />
<Route path="/b" element={<B />} />
<Route path="/c" element={<C />} />
</Routes>
</div>
</CSSTransition>
</TransitionGroup>
スライドアニメーションを作成するコードの詳細は react-transition-groupを使ってページ遷移にスライドアニメーションをつける方法 をご覧ください
Discussion