Next.js
Next.js æ¯ä¸ä¸ªåºäº React çç°ä»£å ¨æ å¼åæ¡æ¶ï¼ç± Vercel å¢éå¼ååç»´æ¤ã宿ä¾äºå¼ç®±å³ç¨çåè½ï¼å æ¬æå¡å¨ç«¯æ¸²æï¼SSRï¼ãéæç«ç¹çæï¼SSGï¼ãå¢ééæåçï¼ISRï¼ãAPI è·¯ç±ãæä»¶ç³»ç»è·¯ç±çï¼å¸®å©å¼åè å¿«éæå»ºé«æ§è½ç Web åºç¨ã
æ¬æåå°è¯¦ç»ä»ç»å¦ä½å¨ CloudBase HTTP äºå½æ°ä¸å¼ååé¨ç½² Next.js åºç¨ç¨åºï¼å åå©ç¨ Next.js çå ¨æ è½åã
åææ¡ä»¶â
å¨å¼å§ä¹åï¼è¯·ç¡®ä¿æ¨å·²å ·å¤ä»¥ä¸æ¡ä»¶ï¼
- Node.js ç¯ å¢ï¼çæ¬ 18.18 ææ´é«ï¼æ¨è 20.xï¼
- npmãyarn æ pnpmï¼å 管çå·¥å ·
- React åºç¡ç¥è¯ï¼çæ React ç»ä»¶å¼å
- CloudBase è´¦å·ï¼å·²æ³¨åè ¾è®¯äºè´¦å·å¹¶å建äºå¼åç¯å¢
ç¯å¢åå¤â
1. æ£æ¥ Node.js çæ¬â
# æ£æ¥ Node.js çæ¬
node --version
# æ£æ¥ npm çæ¬
npm --version
2. å建 Next.js åºç¨â
妿æ¨å·²æ Next.js åºç¨ï¼å¯ä»¥è·³è¿æ¤æ¥éª¤ã
# 使ç¨å®æ¹ CLI å建 Next.js åºç¨
npx create-next-app@latest my-nextjs-app
# è¿å
¥é¡¹ç®ç®å½
cd my-nextjs-app
å建è¿ç¨ä¸çé ç½®é项ï¼
â Would you like to use TypeScript? ⦠No / Yes
â Would you like to use ESLint? ⦠No / Yes
â Would you like to use Tailwind CSS? ⦠No / Yes
â Would you like to use `src/` directory? ⦠No / Yes
â Would you like to use App Router? (recommended) ⦠No / Yes
â Would you like to customize the default import alias (@/*)? ⦠No / Yes
æ¨èé ç½®ï¼
- TypeScript: Yesï¼æ´å¥½çç±»åå®å ¨ï¼
- ESLint: Yesï¼ä»£ç è´¨éä¿è¯ï¼
- Tailwind CSS: Yesï¼å¿«éæ ·å¼å¼åï¼
- App Router: Yesï¼Next.js 13+ æ¨èï¼
åºç¨å¼åâ
1. 项ç®ç»æâ
ä½¿ç¨ App Router ç项ç®ç»æï¼
my-nextjs-app/
âââ app/
â âââ globals.css # å
¨å±æ ·å¼
â âââ layout.tsx # æ ¹å¸å±
â âââ page.tsx # é¦é¡µ
â âââ api/ # API è·¯ç±
â â âââ users/
â â âââ route.ts # /api/users 端ç¹
â âââ about/
â âââ page.tsx # /about 页é¢
âââ components/ # å¯å¤ç¨ç»ä»¶
âââ lib/ # å·¥å
·å½æ°
âââ public/ # éæèµæº
âââ next.config.js # Next.js é
ç½®