Nextjs와 Tailwind-css로 Youtube 클론을 만들어 봅시다 🎉
5170 단어 javascriptbeginnersnextjswebdev
다음은 사이트의 live preview이고 GitHub 저장소의 link입니다. 이 자습서는 시리즈의 일부이며 이 부분에서는 웹 사이트 디자인에만 집중할 것입니다.
설정
1 단계
아직 설정하지 않은 경우 새 Next.js 프로젝트를 생성하여 시작합니다. 가장 일반적인 접근 방식은 Create Next App을 사용하는 것입니다.
npx create-next-app my-project
cd my-project
2 단계
npm을 통해 tailwindcss 및 해당 피어 종속성을 설치한 다음 init 명령을 실행하여 tailwind.config.js 및 postcss.config.js를 모두 생성합니다.
3단계
tailwind.config.js 파일의 모든 템플릿 파일에 대한 경로를 추가합니다.
module.exports = {
content: [
"./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [require("tailwind-scrollbar-hide")],
}
4단계
Tailwind의 각 레이어에 대한 지시문을 ./styles/globals.css 파일에 추가합니다.
@tailwind base;
@tailwind components;
@tailwind utilities;
5단계
상용구 코드를 정리하고 명령을 실행합니다.
npm run dev
어느 시점에서든 위의 단계에서 문제가 발생하면 여기를 참조하십시오doc.
기타 의존성 설치
이제 시작하기 전에 몇 가지 종속성을 다운로드해야 합니다.
"axios": "^0.27.2",
"next": "12.2.2",
"react": "18.2.0",
"react-avatar": "^5.0.1",
"react-dom": "18.2.0",
"react-icons": "^4.4.0",
"react-loading-skeleton": "^3.1.0",
"react-player": "^2.10.1",
"react-tooltip": "^4.2.21",
"tailwind-scrollbar-hide": "^1.1.7"
이를 package.json 파일에 추가하고 명령을 실행합니다
npm install
.구성요소 구조
이제 index.js 파일의
<main>
태그 안에 다음 코드 줄이 있습니다. <main>
<div>
<Header />
<div className='grid grid-cols-7 mt-20'>
<Sidebar />
<Body />
</div>
</div>
</main>
루트 디렉터리에는 새 파일 'Sidebar.js'를 만들 구성 요소 폴더가 있습니다.
// Sidebar.js
import {Items} from './Data/Items';
function Sidebar({) {
return (
<div className='flex flex-col justify-between ml-2 mr-2 col-span-1 z-10 shadow-sm md:ml-7 md:mr-0':'hidden'>
<ul className="flex flex-col justify-between gap-10 fixed overflow-y-scroll h-[95%]">
{Items && Items.map((item, index) => {
return (
<li className='flex items-center text-center gap-4 transition-none p-3 cursor-pointer hover:text-gray-600 md:p-2'
key={index}
>
{item.icon} {' '}<span className='font-semibold pr-4 hidden lg:block'>{item.name}</span>
</li>
)
})}
</ul>
</div>
)
}
export default Sidebar
구성 요소 폴더 안에 'data'라는 새 폴더를 만들고 'Items.js' 파일을 만듭니다.
import {BsHouse, BsCompass, BsController, BsFilm, BsClockHistory, BsCollectionPlay, BsHandThumbsUp, BsLightbulb, BsTrophy, BsGraphUp, BsMusicPlayer, BsGear} from 'react-icons/bs';
export const Items = [
{
name: 'Home',
icon: <BsHouse size={25} />,
},
{
name: 'Explore',
icon: <BsCompass size={25} />,
},
{
name: "Trending",
icon: <BsGraphUp size={25} />
},
{
name: "Subscriptions",
icon: <BsCollectionPlay size={25} />
},
{
name: "Gaming",
icon: <BsController size={25} />
},
{
name: "Films",
icon: <BsFilm size={25} />
},
{
name: "History",
icon: <BsClockHistory size={25} />
},
{
name:"Likes",
icon: <BsHandThumbsUp size={25} />
},
{
name: "Learning",
icon: <BsLightbulb size={25} />
},
{
name: "Sports",
icon: <BsTrophy size={25} />
},
{
name:"Music",
icon: <BsMusicPlayer size={25} />
},
{
name: "Settings",
icon: <BsGear size={25} />
}
]
이번 편은 여기까지 하겠습니다. 곧 다음 편에서 뵙겠습니다.
Reference
이 문제에 관하여(Nextjs와 Tailwind-css로 Youtube 클론을 만들어 봅시다 🎉), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sadeedpv/lets-build-a-youtube-clone-with-nextjs-and-tailwind-css-3i9n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)