Next.js
Next.js에서 페이지 전환 효과 간단하게 적용하기
Kir93
2023. 9. 4. 17:40
728x90
반응형
Next.js는 페이지 전환 효과를 기본적으로 제공하지 않지만, framer-motion 라이브러리를 사용하면 쉽게 적용할 수 있습니다.
1. framer-motion 설치
우선, framer-motion을 설치해야 합니다. 다음 명령어를 실행하여 설치합니다.
npm install framer-motion
// or
yarn add framer-motion
2. 페이지 전환 효과 적용
framer-motion을 설치했으면, 페이지 전환 효과를 _App.tsx 페이지에 적용하면 간단하게 끝납니다.
import React from 'react';
import { AppProps } from 'next/app';
import { motion } from 'framer-motion';
import { useRouter } from 'next/router';
const App: React.FC<AppProps> = ({ Component, pageProps }) => {
// ... other codes
const router = useRouter();
return (
<motion.div
key={router.route}
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
transition={{ duration: 0.3 }}
>
<Component {...pageProps} />
</motion.div>
);
// ... other codes
};
export default App;
위 코드를 간략하게 설명하자면 motion.div는 framer-motion의 컴포넌트입니다.
key는 컴포넌트의 고유한 키를 지정합니다.
initial은 컴포넌트가 처음 로드될 때 투명도를 0으로 설정합니다.
animate은 컴포넌트가 표시될 때 투명도를 1로 변경합니다.
exit은 컴포넌트가 숨겨질 때 투명도를 0으로 변경합니다.
transition은 페이지 전환 효과의 지속 시간을 0.3초로 설정합니다.
이제 페이지가 로드되면 페이지가 투명하게 표시되다가 0.3초 후 투명도가 1로 변경됩니다.
그리고 페이지가 이동할 때는 페이지가 다시 투명하게 표시됩니다.
이외에도 framer-motion에는 정말 다양한 종료의 애니메이션을 쉽게 적용할 수 있으니 시간이 되시면 이외에도 다양한 애니메이션을 확인하시기 바랍니다.
반응형