Webéçºã§ã®ç§ã®çµéšã«ã€ããŠ
ç§ã¯PHPãšMySQLã䜿çšããŠWebéçºã®æ ãå§ãã倧åŠã«ãããšãã«.NETãã©ãããã©ãŒã ã«åãæ¿ããŸãããã¿ã€ãã»ãŒããã£ãMVCã¢ãã«ãã³ãŒããããã°æ©èœãæ°ã«å ¥ããŸãããããããããã§ãç§ã¯ä»åŸã.NETã䜿ãç¶ããããã°ã©ãã³ã°ãšã³ã³ãµã«ãã£ã³ã°ãè¡ããŸãããããããç§ã¯åŸã ã«JavaScriptãç¹ã«åæããŒãžã§ã³ã®Angularã«åãæ¿ããŠããŸããã
çŽ2幎åãç§ã¯ã»ãŒå®å šã«Jamstackã«åãæ¿ããŸãããVue.jsã¯ãæã䜿ããããJavaScriptããŒã«ã®ããã«èŠããã®ã§ã詳ãã調ã¹ãããšã«ããŸãããå人ã®ãŠã§ããµã€ããäœããŸããNuxt.jsã䜿çšããŸããããã¯éçãµã€ããžã§ãã¬ãŒã¿ã§ãããçŸåšã¯Vue.jsã¢ããªã±ãŒã·ã§ã³ãéçºããããã®çŽæçãªãã¬ãŒã ã¯ãŒã¯ãšåŒã°ããŠããŸãããã®ãããžã§ã¯ããçµãããšãReactã«åºã¥ããŠéçãµã€ããæ§ç¯ããã·ã¹ãã ã§ããGatsbyã®æåã®ããŒãžã§ã³ãåºãŠããŸããã次ã®ãããžã§ã¯ãã§Gatsbyã䜿çšããŠãWebãšãŒãžã§ã³ã·ãŒããµããŒãããããšãç®çãšããã·ã³ãã«ãªãããžã§ã¯ãã§ããKenticoAdvantageãµã€ããäœæããŸãããããã¯Reactã§ã®ç§ã®æåã®çµéšã§ããããããŠããã®æåºäŒã£ãããšã¯ãæ¬åœã«æ°ã«å ¥ããªãã£ããäºçŽ°ãªããšãããå¿ èŠãããå Žåã§ããéåžžã«å€§ããªå°é£ãçããŸããã
ç§ã®æ¬¡ã®éçºã¯ç§èªèº«ã®çµå©åŒã®å Žæã§ãããããããç§ã¯GatsbyãšReactã«ããäžåºŠãã£ã³ã¹ãäžããŸããããçµå±ãã»ãã®æ°æ¥åŸãVue.jsã®Gridsomeãã¬ãŒã ã¯ãŒã¯ã«åãæ¿ããŸãããåœæããã®éçãµã€ããžã§ãã¬ãŒã¿ã¯æ¥éã«äººæ°ãåããŠããŸãããç§ã¯æåéãé ã ã§åœŒã«åºããããããã®SSGã®ãããã§ãçŽ3æéã§ç°¡åã«æ©èœããWebãµã€ããäœæããããšãã§ããŸãããç§ã¯ãã é äºãããŸããã Vue.jsã¯ç§ã®ç®ã«ã¯ããå°ãæé·ããŸããã
ãã®åŸãSourcebitãããžã§ã¯ããç»å ŽããŸãããããã¯ãããŸããŸãªããŒã¿ãœãŒã¹ãšSSGãçµã¿åãããããã«äœ¿çšããããã©ã°ã€ã³ã§ãããããŒã¿ãå€æããŠäœ¿ãããããã圹å²ãæãããŸããããã¯èšã£ãŠããNext.jsã¯Sourcebitã§ãµããŒããããŠããå¯äžã®JavaScriptããŒã¹ã®éçãµã€ããžã§ãã¬ãŒã¿ãŒã§ããã..ããã®ãããåºæ¬ãåŠãã åŸãå¥ã®ãããžã§ã¯ãã§Next.jsã䜿çšããŸããã
èªåãŸãã¯ä»ã®äººã®çµéšã«åºã¥ããããŒã«ã®éžæ
äžèšã§ã¯ãéå»2幎éã§æã䜿çšããããŒã«ã«ã€ããŠèª¬æããŸãããããããããããæ¯èŒãããšãããããããšã§ãããããããè¿·ããé 眮ã§ãããã®ãéžã¶ããšã¯ã§ããŸããã
ããªãã次ã®ãããžã§ã¯ãã«é©ããããŒã«ãéžæãã責任ãããéçºè ã§ãããšããŸãããããããžã§ã¯ãã®äœæ¥éå§ã®ã¿ã€ãã³ã°ã¯ãéžæãããã®ã«ãã£ãŠç°ãªãå Žåãããããããããã®ããŒã«ã®å€ãã䜿çšããŠé·æéã®å®éšãè¡ãäœè£ã¯ãããŸããã
èªåã®çµéšãä»ã®äººã®çµéšã«åºã¥ããŠããŒã«ãéžæã§ããŸãã以åã«Angularã䜿çšããããšãããå Žåã¯ãæåã«Angularã䜿çšããããŒã«ãæ€èšããããšããå§ãããŸãããã£ãšåã«AngularãæåŸã«äœ¿çšããå Žåã¯ãååã«äœã䜿çšããŠããããå°ããŠãã ããã確ãã«ããã®ãããªç¶æ³ã§ã¯ãç§ã¯èª°ã«ãäœãå°ããŸããã§ããããããã«Vue.jsãéžæããŸãããåé¡ã¯ãç§ã®ååå šå¡ã以åã«Reactã§äœæ¥ããããšããããšããããšã§ããããããã£ãŠãçµå±ãç§ã¯Googleã䜿çšããŠãçºçããåé¡ã解決ããå¿ èŠããããŸããã
ãã¬ãŒã ã¯ãŒã¯ã®éžæã«åœ±é¿ãäžãããã1ã€ã®èŠå ã¯ããããžã§ã¯ãã®ãµã€ãºã§ããããŒã«ããã¹ãããŠå人çšãµã€ããäœæããå Žåãäœæ¥ã§çºçãã質åã¯ç°¡åã§ãããããã«å¯Ÿããçãã¯éåžžãéžæããããŒã«ã®ããã¥ã¡ã³ãã«èšèŒãããŠããŸããããããããªããäŒæ¥ãããžã§ã¯ããéçºããŠãããšããŸãããããããã¯éšåçãªãã«ãã䜿çšãããããžã§ã¯ãã®äžéšã¯ãµãŒããŒäžã§ã¬ã³ããªã³ã°ãããå€ãã®ããŒã¿ãœãŒã¹ã䜿çšããŸããäœæ¥äžã«åé¡ãçºçããå Žåã¯ãããã¥ã¡ã³ãã®å©ããåããŠãããã«å¯ŸåŠããããšãã§ããªããããååã«è³ªåããããStackOverflowãªã©ã§åçãæ¢ãå¿ èŠããããŸãã
äžèšã®3ã€ã®JavaScriptããŒã«ã«ã€ããŠèª¬æããŸããããã ããJamstackã¯å¿ ãããJavaScriptã§ãããšã¯éããŸãããããããPHPãŸãã¯Rubyãããªãã«è¿ãã§ããããèªåã«åã£ãéçãµã€ããžã§ãã¬ãŒã¿ãèŠã€ããã«ã¯ã次ã®è¡šãåç §ããŠãã ããã
ãã©ããããŒã | éçãµã€ããžã§ãã¬ãŒã¿ |
ãããã | Statiq |
è§åºŠ | ã¹ã«ãªãŒ |
è¡ã | ãã¥ãŒãŽ |
PHP | ã¹ã«ã«ãã³ |
åå¿ãã | ã®ã£ãããŒãNext.js |
ã«ã㌠| ãžãã« |
Vue.js | GridsomeãNuxt.js |
ãŸã 䜿ã£ãŠããªããã©ãããã©ãŒã ã«ã€ããŠã¯äœãèšããŸãããããããVue.jsãReactãããã³é¢é£ããéçãµã€ããžã§ãã¬ãŒã¿ãŒã«é¢ããç§ã®èããå ±æããããšã¯ã§ããŸãã
Vue.jsïŒGridsomeãšNuxt.jsã®æ¯èŒ
Vue.jsãã¬ãŒã ã¯ãŒã¯ã¯ããã®åªããããã¥ã¡ã³ãã§ç¥ãããæåã§ãã Gridsomeã¯åãéããã©ããŸãããã®SSGã®ããã¥ã¡ã³ãã¯éåžžã«ããæžãããŠããŸããããã¯Gridsomeã§å§ãã誰ããæåŸ ã§ãããã¹ãŠãæã£ãŠããŸããæ¬åœããã®ããã¥ã¡ã³ããèªãã ãšãããã®äœè ãç§ã®å¿ãèªãã§ããããã«èŠããŸããã Gridsomeã¯GraphQLã䜿çšããŸãããããã£ãŠãããŒã¿ãœãŒã¹ã¯ç¹å¥ãªãã©ã°ã€ã³ã䜿çšããŠãµã€ãã«æ¥ç¶ããå¿ èŠããããŸãã Gridsomeã¯ãããŒã¿ã¢ãã«ã察å¿ããååã®ãã³ãã¬ãŒãã«èªåçã«é¢é£ä»ããã«ãŒãã£ã³ã°ãæŽçããŸããåå¿è ã«ãšã£ãŠãããã¯å€§ããªãã©ã¹ã§ãã Gridsomeã¯å€éšJavaScriptãªãœãŒã¹ãèš±å¯ããŸãã ããã¹ããã©ã¯ãã£ã¹ãã®ããã«ã¯èãããªãããšã¯ããã£ãŠããŸãããããšãã°ãHTML5UP.netãªã©ã®ãµã€ããããã³ãã¬ãŒããããŠã³ããŒãããå Žåããã®ãããªãã³ãã¬ãŒãã«ã¯ãããçšåºŠã®JSã³ãŒããå«ãŸããŸãã Nuxt.jsã§ãã®ãããªãã®ãå¿ èŠã«ãªã£ããšããç§ã¯å°é£ã«ééããŸãããçµå±ãVueã®å¯Ÿå¿ããæ©èœãæžãçŽããªããã°ãªããŸããã§ããã
Gridsomeã䜿çšããçµéšãèŠçŽãããšãäœæ¥ã¯ç°¡åã ã£ããšèšããŸãããã¬ãŒã ã¯ãŒã¯ã¯ç§ãå¿ èŠãªãã®ãéæããã®ãå©ããŸãããç§ã¯ãã®ãã©ãããã©ãŒã ãç§ã®åã«çœ®ãã§ãããé害ãšæŠãå¿ èŠã¯ãããŸããã§ããã Gridsomeã䜿çšãããšããããæ°æéã§ç°¡åã«æ©èœããWebãµã€ãã«ã¢ã¯ã»ã¹ã§ããŸãã
Nuxtã䜿çšããå Žåãæãé£ããéšåã¯ãVuexããŒã¿ã¹ãã¢ã®æäœã®è©³çŽ°ãç解ããVuex.storeãäœæããããšã§ããã..ããããã®ãªããžããªã¯ãNuxt.jsãããžã§ã¯ãã§äœ¿çšãããŸããã³ã³ããŒãã³ããããŒã¿ãåŠçããå¿ èŠãããå Žåã¯ããã¹ãŠã®ããŒã¿ã1ãæã«ä¿åãããŠãããšããäºå®ããå ã«é²ãå¿ èŠããããŸãããã¡ãããã³ã³ããŒãã³ãã¬ãã«ã§ããŒã¿ãä¿åããããšãã§ããŸãããç°ãªãã³ã³ããŒãã³ããåãããŒã¿ã䜿çšããããšããããããŸãããã®çµæãã³ãŒãã®éè€ãé¿ããããã«ãåäžã®ããŒã¿ã¹ãã¢ã䜿çšããå¿ èŠããããŸãããã®ãããªã¹ãã¬ãŒãžãå®è£ ããããã«ãã©ããããå¿ èŠãªããŒã¿ãåéããç¹å¥ãªãã©ã°ã€ã³ã¯å¿ èŠãããŸãããããšãã°ãç§ã¯Kentico KontentUIãªãã§CMSã§åäœããããã«èšèšããã1ã€ã®ãã©ã°ã€ã³ã䜿çšããŸãããããã¯ééããªãç§ã®äººçã楜ã«ããŠãããŸããããDeliverySDKã§FetchAPIã䜿çšããããšãã§ããŸããã..ããã¹ãŠãããŸããã£ãåŸãç§ã¯ãã®ãã¿ãŒã³ã奜ãã ãšæ°ã¥ããŸãããä¿¡é Œæ§ãšæè»æ§ããããŸããç§ã¯ã倧èŠæš¡ãªãããžã§ã¯ãã§ã®äœæ¥ã«ã¯ããããéžæããŸããããã䜿çšããã«ã¯ãæåã«ããããç¥ãããã«æéãè²»ããå¿ èŠããããŸãã
Nuxt.jsã¯ããµãŒããŒåŽã®ã¬ã³ããªã³ã°ãšãã¬ãã¥ãŒã¢ãŒãã®äž¡æ¹ããµããŒãããŠããŸãã圌ã®åšãã«ã¯å€§ããªã³ãã¥ããã£ã圢æãããŠããŸããããããã¹ãŠãããNuxt.jsã¯Gridsomeãããæçãããããžã§ã¯ãã§ãããNuxt.jsã¯æ·±å»ãªãµã€ãã«é©ããŠãããšèšããŸãã
次ã®è¡šã«ãGridsomeãšNuxt.jsã®é·æïŒã+ãã§ããŒã¯ïŒãšçæïŒã-ãã§ããŒã¯ïŒããªã¹ãããŠãæ å ±ãèŠçŽããŸãããã
ã°ãªãããµã | Nuxt.js |
+åªããããã¥ã¡ã³ã | +æè»æ§ |
+䜿ãããã | + GridsomeãããæçããŠããŠä¿¡é Œæ§ãé«ã |
+ GraphQLã䜿çšãã | + , Gridsome |
+ JavaScript- | + |
â | + |
â «», | â , Gridsome |
React: Gatsby Next.js
ã®ã£ãããŒããå§ããŸãããããã®ãã¬ãŒã ã¯ãŒã¯ã®æãèå³æ·±ãæ©èœã¯ãGraphiQLãšåŒã°ããGraphQLãæäœããããã®ããŒã«ã«ãã£ãŠè¡šããããšæããŸãã Gatsbyã¯GraphQLã䜿çšããŸãããŸããGraphiQLã䜿çšãããšããµã€ãã§äœ¿çšãããŠããããŒã¿ãæäœã§ããŸãããã®ããŒã«ã®éèŠæ§ãšæçšæ§ãååã«åŒ·èª¿ããããšã¯ã§ããŸãããããã«ãããéçºè ã¯äœ¿çšãããŠããããŒã¿ãœãŒã¹ã®ããã¥ã¡ã³ããèªãå¿ èŠããªããªããŸãã GraphiQLã䜿çšãããšãããŒã¿ãã€ã³ã¿ã©ã¯ãã£ãã«è¡šç€ºã§ããŸããããŒã¿ãããå¿ èŠãªãã®ãéžæã§ããŸããããã«ãããã³ã³ããŒãã³ãã«ã³ããŒãããèªåçã«çæãããGraphQLã¯ãšãªãçæãããŸãã Gatsby
ã§GraphQL
ã䜿çšããŠGraphiQLãæäœããããšã¯ããã©ã°ã€ã³ãæ¢ãããšãæå³ããŸã該åœããããŒã¿ãœãŒã¹çšã確ãã«ããã®ãããªãã©ã°ã€ã³ã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãªãã§ãã¹ãŠã®äž»èŠãªCMSã§å©çšã§ããŸãã Gatsbyã®ãã1ã€ã®é·æã¯ããã®ãã¬ãŒã ã¯ãŒã¯çšã«èšå€§ãªæ°ã®ãã©ã°ã€ã³ãäœæãããŠããããšã§ãã SEOããç»åã®ããã°ã¬ãã·ãããŒããGraphQLã¹ããŒãã®ãšã¯ã¹ããŒããŸã§ãæåéããã¹ãŠã®å Žé¢ã«å¯Ÿå¿ãããã©ã°ã€ã³ããããŸãã
ãã ããNext.jsã䜿çšããå ŽåãããŒã¿ãæäœããããã®æšæºããŒã«ãäžè¶³ããŠããŸãããã®çµæãéçºè ã¯ãããããã®ç¹å®ã®ç¶æ³ã§äœã䜿çšããããæ£ç¢ºã«ææ¡ããããã«æéãè²»ããå¿ èŠããããŸããããšãã°ãåæ§ã®åé¡ã解決ãããšããç§ã¯ãã®ãªããžããªã«è§Šçºãããããªããžããªããã¿ãŒã³ã䜿çšããŸããã GraphQLãªãã§ç掻ã§ããå ŽåãNext.jsã¯Gatsbyãå®è¡ã§ãããã¹ãŠã®ãã®ãªã©ãæäŸããŸãã
Next.jsã§ã®ã«ãŒãã£ã³ã°
Next.jsã¯ããã¡ã€ã«ããŒã¹ã®ã«ãŒãã£ã³ã°ã¢ãã«ã䜿çšããŸããããã«ããããªãã¿ã®ãªããããžã§ã¯ãã§äœæ¥ããå¿ èŠãããå Žåã§ããããŒãžããã³ãã¬ãŒããç°¡åã«èŠã€ããããšãã§ããŸãããã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšãããšãéçããŒãžãšåçã«çæãããããŒãžãçµã¿åãããããšãã§ããŸãããããã®2ã€ã®ããŒãžäœæã¡ã«ããºã ã¯ã1ã€ã®ããŒãžã«çµåããããšãã§ããŸããããã«ããããããªã¢ã«ãã¬ãã¥ãŒæ©èœã®å®è£ ãå€§å¹ ã«å®¹æã«ãªããŸãã GatsbyãšNext.jsã¯ã©ã¡ãããã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ããäœæããæ¹æ³ãç¥ã£ãŠããŸãããã ããGatsbyã®å Žåã¯ã Gatsby Cloudã§ãµã€ãããã¹ãããå¿ èŠããããŸããããã¯ãç¹å¥ãªèŠä»¶ã§æºåããããã©ã°ã€ã³ã䜿çšããå Žåã«ã®ã¿å¯èœã§ãã
Next.jsãšGatsbyãæ¯èŒãããšãNext.jsãããå°ããªãªãªãŒã¹ãã³ãã«ãçæããããšãããããŸããåèè³æã®æ€çŽ¢ãã³ãã¥ããã£ã¡ã³ããŒããã®è³ªåãžã®åçã®ååŸã«ã€ããŠè©±ãå Žåãå®è·µã瀺ããŠããããã«ãGatsbyãšNext.jsã¯ãã®ç¹ã§ã»ãŒåãããã«èŠããŸãã
GatsbyãšNext.jsã®é·æãšçæã«é¢ããããŒã¿ãèŠçŽããŸãããã
ã®ã£ãã㌠| Next.js |
+ GraphQLãäœ¿çš | +ãã¡ã€ã«åã«åºã¥ã䟿å©ãªã«ãŒãã£ã³ã°ã¢ãã« |
+ GraphQLãæäœããããã®ããŒã«ãå«ãŸããŠããŸã | +å€çšéã®ãã¬ãã¥ãŒã¢ãŒã |
+ã®ã£ãããŒçšã®ãã©ã°ã€ã³ã¯ãããããããŸã | +éçããŒãžãšåçããŒãžãçµã¿åãããæ©èœ |
-å®ãµãŒããŒã¬ã³ããªã³ã°ã·ã¹ãã ã¯ãããŸãã | +ã®ã£ãããŒãããã³ã³ãã¯ããªãã«ã |
-GatsbyCloudã«é¢é£ä»ããããã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ããšãã¬ãã¥ãŒã¢ãŒã | -ããŸããŸãªãœãŒã¹ããããŒã¿ãååŸããããã®æšæºçãªã¡ã«ããºã ããªããããéçºè ã¯ãã®ãããªã¡ã«ããºã ãèŠã€ããå¿ èŠããããŸã |
--Gatsbyã¢ã»ã³ããªã®ã¹ããŒããšãã£ãã·ã³ã°ã¯ãå€ãã®å Žåããã£ãã·ã³ã°ã®åé¡ã®åå ã§ãã |
ãã©ãããã©ãŒã ãéžæããéã«èæ ®ãã¹ããã®ä»ã®èæ ®äºé
Webãããžã§ã¯ãã«äœ¿çšããããŒã«ã決å®ãããšããç§ãã¡ã¯ãã次ã®ããã«èããŸãããããã¥ã¡ã³ãã¯ããã§åªããŠããŸããå€ãã®äººãTwitterã§ããã«ã€ããŠè©±ãããªãªãŒã¹ããªãªãŒã¹ãããããšãå€ãããã©ã°ã€ã³ããããããããŸãããããã¯éåžžãã®ãããªæšè«ã§çµãããŸããç¹å®ã®ãã©ãããã©ãŒã ãååã«é·ã䜿çšãããšæãããå Žåãè€æ°ã®ãããžã§ã¯ãã§äœ¿çšã§ããããŸãã¯äŒç€Ÿå šäœã®å ¬åŒããŒã«ã«ãªãããšãã§ãããšæãããå Žåã¯ã次ã®è³ªåãè¡ãå¿ èŠããããŸãã
- , ?
- ?
- ?
- , , - ?
- ?
- - ?
Webãã¬ãŒã ã¯ãŒã¯ã®éžæã«é¢ããŠã¯ãå¯èœãªéãVue.jsã䜿çšããåŸåããããŸãããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãæšæºèšå®ã«ããŸãå¹²æžããããšãªããå¿ èŠãªãã®ããã°ããç°¡åã«äœæã§ããããã«æããŸããç§ã¯éåžžãåçæ©èœãå¿ èŠãšããã«ã¹ã¿ã èŠçŽ ãåŸæ¥ã®Webãµã€ãã³ã³ããŒãã³ããå¿ èŠãªå Žåã¯åžžã«Vue.jsã䜿çšããŸããç§ã¯Vue.jsã§å°ããªãµã€ããæ§ç¯ããŠããŸãããŸãã倧èŠæš¡ãªãããžã§ã¯ãã«ã¯Vue.jsã䜿çšããªããããGridsomeã䜿çšããåŸåããããŸãã
ãã倧èŠæš¡ã§æ·±å»ãªãããžã§ã¯ãã«ã¯ãReactã©ã€ãã©ãªã䜿çšããŸããKenticoã§ã¯ãã»ãšãã©ãã¹ãŠã®ããã³ããšã³ãéçºãReactã«åºã¥ããŠããŸããå°æ¥çã«ã¯ãã®æ¹åã«é²ãäºå®ã§ãããããã£ãŠãç§ãåãããšãããã®ã¯è«ççã§ããéçãµã€ããžã§ãã¬ãŒã¿ãŒã®éžæã«ã€ããŠè©±ãå Žåãä»ã¯Next.jsãšGatsbyã®äž¡æ¹ã䜿çšããŠããŸãããã©ã¡ããäžæ¹ã®æ¹ã奜ãã§ããç§ã«ãšã£ãŠããã®ãã¬ãŒã ã¯ãŒã¯ã®æ倧ã®æ©èœã¯ãåçã«ãŒãããµããŒããããã¡ã€ã«ããŒã¹ã®ã«ãŒãã£ã³ã°ã§ãããŸããSourcebitãšã®äºææ§ãæ°ã«å ¥ã£ãŠããŸããããã«ãããå¿ èŠã«å¿ããŠããã¹ãŠãæåããæžãçŽãããšãªããããŒã¿ãœãŒã¹ãŸãã¯SSGãå€æŽã§ããŸãã
ã©ã®éçãµã€ããžã§ãã¬ãŒã¿ã䜿çšããŠããŸããïŒ