Next.jsã¡ã¢
Next.js - Linkãšããã²ãŒã·ã§ã³ -
ãã¡ãã®ããã¥ã¡ã³ããæ¹ããŠèªãã§ããã
以äžèªåã®äž»èŠ³ã»æèš³ãå«ãïŒèªèéã£ãŠããææãé¡ãããŸãïŒ
æè¿è©±é¡ã«ãªã£ãŠããRemixã®æ¹ãWebæšæºã ããšãèšããããã©ïŒèªåãæ£çŽWebæšæºã«é¢ããŠè©³çްã«ã¯çè§£ããŠããªãïŒãNext.jsã¯ããŒãžå ãªã³ã¯ãWebæšæºã®ãªã³ã¯èŠçŽ ïŒããããäœ¿ãæ¹ã§ããã®ããªïŒïŒã§ããaã¿ã°ã§ã¯ãªããLinkã³ã³ããŒãã³ãïŒLink APIïŒã䜿çšããã
å³å¯ã«ã¯aã¿ã°ã䜿ããïŒïŒãã©ãNext.jsãšããŠLinkã¿ã°ã®äœ¿çšãæšå¥šããŠãããªããªãLinkã¿ã°ã¯Next.jsãç¬èªã«æé©åããä»çµã¿ã§ãNext.jsãéžå®ãããŠãŒã¶ãŒã®äœéšãæé©åã§ãããã®ã ããã
ãã®Linkãšããã²ãŒã·ã§ã³ã®æŠå¿µãçè§£ããã«ã¯ä»¥äžã®æŠå¿µãåãããŠç¥ã£ãŠããå¿ èŠãããã
- Next.jsã®ã¬ã³ããªã³ã°
- ããªãã§ãã
- ã¹ããªãŒãã³ã°
- Client-side transitions
次ãžç¶ã =>
Next.jsã®ã¬ã³ããªã³ã°
Next.jsã®ã¬ã³ããªã³ã°ã«ã€ããŠã詳ããã¯å ¬åŒããã¥ã¡ã³ããæé£ãããšã«åããZennäžã«äžãã£ãŠãããNext.jsã®èãæ¹ããèªãã ããã ãããšããªã¹ã¹ã¡ããŸãã
ããã§ã¯ãã£ããèªåã®çè§£ã ããNext.jsã¯åºæ¬çã«3ã€ã®ã¬ã³ããªã³ã°ãå¯èœã§ããã
ãããããããã4ã€ïŒ5ã€ïŒãããããªããããã¯èªä¿¡ãªãã
ãã èªåã®ç¥ãéãã¯ä»¥äžã®æãããªãš
- SSG
- ISR
- SSR
ä»ã«ããCSRãšãPPRãšããã§ããã
â» 'use client'ãªã©ã䜿çšãã => CSRïŒãã®èªèã ãšè²ã
äžè¶³ããŠããã ãã©ïŒ
â» PPR = ããæ¹å¿ãããã©ãNext.js v14ç³»ïŒãããããå®éšå°å
¥ãããŠã
ã²ãšãŸãäž»èŠã¬ã³ããªã³ã°ãSSGã»ISRã»SSRã ãšä»®å®ãããšãNext.jsããªããµã€ãã»ã¢ããªããã©ãŒãã³ã¹ãSEOãªã©ã«åŒ·ããšèšãããã®ããªããšãªãããããããã¬ãŒã ã¯ãŒã¯ãšããŠã®ææ³ããã£ã¡å¯ãã®ãã®ãªã®ããªïŒãšæãã
SSGã»ISRã»SSRã¯äœ¿çšå Žé¢ãªã©ã§ã«ããŽãªåããããšã以äžã®æãããšæãã
SSGã»ISR => éçïŒææ°æ
å ±ã§ãªããŠãããå ŽåïŒ
SSR => åçïŒæ
å ±ã®é®®åºŠãéèŠïŒ
éçãšåçãªã¬ã³ããªã³ã°æ§è³ªã䜵ãæã€Next.jsã ãã©ãå ±éããã®ã¯ãµãŒããŒåŠçãããããšã§ãããSSGãšISRã¯ãã«ãæã»åæ€èšŒæã»ãã£ãã·ã¥åãæãSSRã¯ã³ã³ãã³ãæŽæ°æãšãã®éãã¯ããã©ãåºæ¬çã«ãµãŒããŒã§ã¬ã³ããªã³ã°ãããã
次ãžç¶ã =>
Next.jsã®ã¬ã³ããªã³ã°2
ã ãã¶è±ç·æ°å³ã§è¥å¹²ç²ããŸããã...
åºæ¬çã«Next.jsããµãŒããŒã䜿çšãåŠçãããŠãããšããã€ãªããã§ã"RSC" ãããããReact Server ComponentãšããæŠå¿µãããé¢ãã£ãŠããã£ãœããæ£çŽèªåã¯çè§£ãè¶³ããªãã®ã§ããã¯ããŸãæžããªã...åã®åŠããããšããµãŒããŒã§åŠçãããReactã®ã³ã³ããŒãã³ããšããããšã ãããã
ãã®RSCãNext.jsã§ã¯ã©ã®ããã«åããŠãããã ãã©ãRSCãã€ããŒããšãã圢ã§ããµãŒããŒããæé æžã¿ããã«åå²ã¹ããªãŒãã³ã°ãããã
ãã®åå²ã¹ããªãŒãã³ã°ããããšããã®ããåŸæ¥ã®SSRïŒãµãŒããŒã§HTMLãäœæããŠè¿ãïŒãšã¯ç°ãªããïŒNext.jsã§ãååã¯è¿ããã ã£ã...ïŒèªä¿¡ç¡ããªã£ãŠããïŒ
æ¬æ¥ã¯ããç ãã®ã§ãã®èŸºã§ã
次ãžç¶ã =>
ããªãã§ãã
以äžãåè¿°ããããå ·äœçã«Next.jsãæšå¥šããLinkã³ã³ããŒãã³ããã©ã®ããã«æé©åãããŠããã®ãããã®ä»£è¡šäŸãããªãã§ãããšããæŠå¿µã ãšæãã
å³å¯ã«ã¯aã¿ã°ã䜿ããïŒïŒãã©ãNext.jsãšããŠLinkã¿ã°ã®äœ¿çšãæšå¥šããŠãããªããªãLinkã¿ã°ã¯Next.jsãç¬èªã«æé©åããä»çµã¿ã§ãNext.jsãéžå®ãããŠãŒã¶ãŒã®äœéšãæé©åã§ãããã®ã ããã
ããªãã§ãããšã¯ãAstroãªã©ä»ãã¬ãŒã ã¯ãŒã¯ã§ãåºãŠããæŠå¿µã§ã¯ãããããªãã ãããã
æããæšæž¬ãããšãããªïŒåãã£ãŠïŒ + ãã§ããïŒååŸïŒçãªæãã§ãäœããåãã£ãŠååŸããã®ã ããã
Linkã³ã³ããŒãã³ãã«ãããŠããã®"äœã" ãšããã®ã¯ããã®Linkã³ã³ããŒãã³ãã䜿ã£ãŠããã²ãŒããããå ã®ããŒãž/ç»é¢ã®æ å ±ã§ããã
éåžžã®aã¿ã°ã®é·ç§»ã§ã¯ãããŒãžããã«ããŒãïŒåããŒãžå ãªã³ã¯ã¯é€ãïŒããNext.jsã®Linkã³ã³ããŒãã³ãã®å ŽåãLinkã³ã³ããŒãã³ãããã¥ãŒããŒãã«å ¥ã£ãã¿ã€ãã³ã°ã§åãã£ãŠé·ç§»å ç»é¢ã®æ å ±ãååŸããŠããããã®ããžãã¯ã®ãããã§ãé·ç§»åŸã®ç»é¢è¡šç€ºãèããéããªããããããŠãŒã¶ãŒäœéšããããããã
仿Žãªãããããèãããã®ã ãªãšãããæã£ããç»é¢ãæ©ã衚瀺ããçºã«ã¯ã倧ãã2æ¹åãããšæã£ãŠããŠã以äžããªãšæã£ãã
- 衚瀺é床èªäœã®æ¹åïŒè²ã ããæ¹ã¯ãããšæãïŒ
- 衚瀺ã³ã³ãã³ãã®ååŸã¿ã€ãã³ã°ãæ©ãã
ç§ã®å Žåã¯ãããããåè ã®æ¹ãæã£ãŠãç»åãªã©ã®å€§ãããªããžã§ã¯ããæé©åããããäžèŠã³ãŒãåé€ãããããŠããŸããšæããããèªäœã¯æ±ºããŠç¡é§ã§ã¯ãªããšæãããããããèããã°åŸè ã®ã¢ãããŒãããããªãšæã£ãã
ãã®ããªãã§ããã¯Linkã³ã³ããŒãã³ãã䜿çšãããããã©ã«ãã§trueã«ãªã£ãŠããŠãå Žåã«ãã£ãŠã¯falseã«ããããšãã§ããã
ãŠãŒã¶ãŒãç»é¢ãèŠããããã«ãªãããã®ã衚瀺é床èªäœã¯å¢ãããåœç¶ãªããè£ã§ããªãã§ãããšãããããã¯ãŒã¯ã䜿çšããåŠçãèµ°ã£ãŠãã®ã§ãå åãååŸããå¿ èŠæ§ãèãã³ã³ãã³ããŸã§å šãŠtrueã«ãããšãããªãã§ããããã ãã«ãªã£ãŠããŸãããªã¹ã¯ãããã
次ãžç¶ã =>
Next.jsãšVercel
äœãšãªãã§ãã䜿çšããŠãªãã£ããæ£çŽçžæ§ãããããã
ãšããã®ãããæããçç±ã¯ãäž»ã«ä»¥äž
- Next.jsã®ã¬ã³ããªã³ã°ïŒSSGãSSRãISRïŒã«èšå®ç¡ãã§å¯Ÿå¿ããŠã
- Vercelã«ãããã€ããåæã®ããã±ãŒãžãå€ã ãã
æ£çŽããŸã èµ°ãããŠã®å人éçºãã¹ã¿ãŒãã¢ããã§Next.jsãšVercelãã»ããã§äœ¿çšãããããåãã£ãæ°ãããã
Next.jsèªäœãç¬èªã®APIãå€ãããããã䜿ãããªããã°ã ãããäœã§ãã§ãããšãã䟿å©ããããããããã®ã»ãŒå€§äœã«å¯Ÿå¿ããŠãã€ã³ãã©ãå°ãªãæ°ããããVercelã¯ãããã«æé©åãããŠãã®ã§ãäœãèããªãã§ã䜿ããŠããŸãã䟿å©ããšæããããã
äœããåçšã§äœ¿çšããã«ã¯æ©èœãå°ãªãã£ãããæéãåºå®ã§é«ãã£ããããã®ã§ãæå°ã§ãCloudflareãªã©ã«ä¹ããæ°æã¡ãçè§£ã§ããã