다음 것.js Cheatsheet
본문 바로가기
설치하기
자주 묻는 질문
카지노사이트
Next.js 앱 만들기
카지노사이트
수동 설치
카지노사이트
Package.json 스크립트
카지노사이트
프로젝트 생성
사용 가능한 템플릿
카지노사이트
개발 서버
카지노사이트
건설 및 생산
카지노사이트
프로젝트 구조
앱 라우터 구조 (Next.js 13+)
카지노사이트
페이지 라우터 구조 (Legacy)
카지노사이트
로그아웃
앱 라우터 (Next.js 13+)
파일 기반 Routing
카지노사이트
동 노선
ο 회원 관리
Catch-all 노선
카지노사이트
- 연혁
카지노사이트
노선 그룹 및 병렬 노선
카지노사이트
페이지 및 레이아웃
루트 레이아웃
카지노사이트
연락처
카지노사이트
페이지 구성
카지노사이트
로드 및 오류 미국
카지노사이트
API 경로
앱 라우터 API 루트
카지노사이트
동적 API 경로
오프화이트
기타 제품
카지노사이트
API 오류 처리
오프화이트
자료 Fetching
Server 구성 요소 (기본값)
카지노사이트
고객 구성
카지노사이트
정체되는 위치 발생 (SSG)
카지노사이트
공전 재생 (ISR)
카지노사이트
사이트맵
사이트맵 모듈
카지노사이트
카지노사이트
꼬리바람 CSS
```bash
Install Tailwind CSS
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
```의 경우
javascript
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
colors: {
primary: '#3b82f6',
secondary: '#64748b',
},
},
},
plugins: [],
};
에 대하여
```css
/ app/globals.css /
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.btn-primary {
@apply bg-primary text-white px-4 py-2 rounded hover:bg-blue-600;
}
}
```의 경우
Styled 부품
```bash
Install styled-components
npm install styled-components
npm install -D @types/styled-components
```에 대하여
```typescript
// components/Button.tsx
import styled from 'styled-components';
const StyledButton = styled.button<{ variant?: 'primary' | 'secondary' }>`
padding: 0.5rem 1rem;
border: none;
border-radius: 0.25rem;
cursor: pointer;
font-weight: 500;
${props => props.variant === 'primary' && `
background-color: #3b82f6;
color: white;
&:hover {
background-color: #2563eb;
}
`}
${props => props.variant === 'secondary' && `
background-color: #6b7280;
color: white;
&:hover {
background-color: #4b5563;
}
}
;
export default function Button({ children, variant = 'primary', ...props }) {
return (
{children}
);
}
```의 경우
Emotion을 가진 CSS-in-JS
카지노사이트
카지노사이트
이미지 최적화
Next.js 이미지 구성 요소
카지노사이트
이미지 구성
카지노사이트
주문 이미지 로더
카지노사이트
성능 최적화
번들 분석
카지노사이트
코드 분할
```typescript
// Dynamic imports
import dynamic from 'next/dynamic';
const DynamicComponent = dynamic(() => import('../components/HeavyComponent'), {
loading: () =>
Loading...
,
ssr: false, // Disable server-side rendering
});
// Conditional loading
const ConditionalComponent = dynamic(
() => import('../components/ConditionalComponent'),
{ ssr: false }
);
export default function Page() {
const [showComponent, setShowComponent] = useState(false);
return (
setShowComponent(true)}>
Load Component
{showComponent && }
);
}
```의 경우
Lazy 선적
```typescript
import { lazy, Suspense } from 'react';
const LazyChart = lazy(() => import('../components/Chart'));
export default function Dashboard() {
return (
Dashboard
Loading chart...\ }>
);
}
```의 경우
성능 모니터링
카지노사이트
캐싱 전략
```typescript
// Static data caching
const getData = cache(async () => {
const res = await fetch('https://api.example.com/data');
return res.json();
});
// Request memoization
import { unstable_cache } from 'next/cache';
const getCachedData = unstable_cache(
async (id) => {
const data = await fetchData(id);
return data;
},
['data-cache'],
{ revalidate: 3600 } // 1 hour
);
```의 경우
인증현황
NextAuth.js 설정
```bash
Install NextAuth.js
npm install next-auth
```를 호출합니다.
```typescript
// app/api/auth/[...nextauth]/route.ts
import NextAuth from 'next-auth';
import GoogleProvider from 'next-auth/providers/google';
import CredentialsProvider from 'next-auth/providers/credentials';
const handler = NextAuth({
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
CredentialsProvider({
name: 'credentials',
credentials: {
email: { label: 'Email', type: 'email' },
password: { label: 'Password', type: 'password' }
},
async authorize(credentials) {
// Verify credentials
const user = await verifyCredentials(credentials);
return user ? { id: user.id, email: user.email } : null;
}
})
],
callbacks: {
async jwt({ token, user }) {
if (user) {
token.id = user.id;
}
return token;
},
async session({ session, token }) {
session.user.id = token.id;
return session;
},
},
pages: {
signIn: '/auth/signin',
signUp: '/auth/signup',
},
});
export { handler as GET, handler as POST };
```의 경우
세션 관리
```typescript
// components/AuthProvider.tsx
'use client';
import { SessionProvider } from 'next-auth/react';
export default function AuthProvider({
children,
session,
}: {
children: React.ReactNode;
session: any;
}) {
return {children} ;
}
// app/layout.tsx
import AuthProvider from '../components/AuthProvider';
export default function RootLayout({ children }) {
return (
{children}
);
}
```로
보호된 노선
카지노사이트
Database 통합
Prisma 설치
오프화이트
카지노사이트
__CODE_BLOCK_49_로그
Database 운영
카지노사이트
API 통합
```typescript
// app/api/posts/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { getPosts, createPost } from '../../../lib/posts';
export async function GET() {
try {
const posts = await getPosts();
return NextResponse.json(posts);
} catch (error) {
return NextResponse.json(
{ error: 'Failed to fetch posts' },
{ status: 500 }
);
}
}
export async function POST(request: NextRequest) {
try {
const body = await request.json();
const post = await createPost(body);
return NextResponse.json(post, { status: 201 });
} catch (error) {
return NextResponse.json(
{ error: 'Failed to create post' },
{ status: 500 }
);
}
}
```를 호출합니다.
계정 만들기
Vercel 배포
```bash
Install Vercel CLI
npm install -g vercel
Deploy to Vercel
vercel
Deploy to production
vercel --prod
Set environment variables
vercel env add VARIABLE_NAME
```의 경우
카지노사이트
Docker 배포
카지노사이트
정적 수출
```javascript
// next.config.js
/* @type {import('next').NextConfig} /
const nextConfig = {
output: 'export',
trailingSlash: true,
images: {
unoptimized: true
}
};
module.exports = nextConfig;
```로
카지노사이트
제품정보
Jest 및 React 테스트 라이브러리
카지노사이트
카지노사이트
javascript
// jest.setup.js
import '@testing-library/jest-dom';
에
구성 요소 테스트
```typescript
// tests /components/Button.test.tsx
import { render, screen, fireEvent } from '@testing-library/react';
import Button from '../components/Button';
describe('Button', () => {
it('renders button with text', () => {
render(Click me );
expect(screen.getByRole('button')).toHaveTextContent('Click me');
});
it('calls onClick when clicked', () => {
const handleClick = jest.fn();
render(Click me );
fireEvent.click(screen.getByRole('button'));
expect(handleClick).toHaveBeenCalledTimes(1);
});
it('applies correct variant styles', () => {
render(Primary );
expect(screen.getByRole('button')).toHaveClass('btn-primary');
});
});
```의 경우
API 테스트
카지노사이트
사이트맵 Playwright와 테스트
카지노사이트
```typescript
// tests/e2e/home.spec.ts
import { test, expect } from '@playwright/test';
test('homepage loads correctly', async ({ page }) => {
await page.goto('/');
await expect(page).toHaveTitle(/My App/);
await expect(page.getByRole('heading', { name: 'Welcome' })).toBeVisible();
});
test('navigation works', async ({ page }) => {
await page.goto('/');
await page.getByRole('link', { name: 'About' }).click();
await expect(page).toHaveURL('/about');
await expect(page.getByRole('heading', { name: 'About' })).toBeVisible();
});
```의 경우
문제 해결
일반적인 문제
Hydration 운동
카지노사이트
메모리 누출
카지노사이트
오류 수정
카지노사이트
성능 문제
카지노사이트
최고의 연습
프로젝트 구조
카지노사이트
성과 모범 사례
카지노사이트
사이트 맵 최고의 연습
```typescript
// Metadata API
export const metadata = {
title: 'My Page',
description: 'Page description',
keywords: ['next.js', 'react', 'javascript'],
authors: [{ name: 'John Doe' }],
openGraph: {
title: 'My Page',
description: 'Page description',
images: ['/og-image.jpg'],
},
twitter: {
card: 'summary_large_image',
title: 'My Page',
description: 'Page description',
images: ['/twitter-image.jpg'],
},
};
// Dynamic metadata
export async function generateMetadata({ params }) {
const post = await fetchPost(params.id);
return {
title: post.title,
description: post.excerpt,
};
}
```의 경우
보안 모범 사례
카지노사이트
제품정보
Next.js는 현대 웹 애플리케이션 구축을위한 완벽한 솔루션을 제공하는 강력한 React Framework입니다. 주요 특징은 다음을 포함합니다:
App Router : 레이아웃, 로드 상태, 오류 경계를 가진 새로운 라우팅 시스템
Server Components : 더 나은 성능을 위해 서버의 구성 요소 렌더링
API Routes : 내장 API 엔드포인트(Full-stack) 기능
** 이미지 최적화 **: 자동 이미지 최적화 및 게으른 로딩
Performance : Core Web Vitals용 내장 최적화
Deployment : Vercel 및 기타 플랫폼의 원활한 배포
최적의 결과를 위해 Server 구성품을 기본적으로 활용하고, 클라이언트 구성품을 사용하여 적절한 캐싱 전략을 구현하고, 다음을 따르십시오. routing 및 data fetching.
<문서>
기능 copyToClipboard () 이름 *
const 명령어 = document.querySelectorAll('code');
let allCommands = '';
명령. forEach(cmd =>의 경우 모든Commands +=cmd.textContent +
navigator.clipboard.write텍스(allCommands);
alert('모든 명령은 클립보드에 복사!');
이름 *
함수 생성PDF() {
창. 인쇄 ();
이름 *