ããã³ããšã³ã Web éçºã®ã³ã³ããã¹ãã§ã¯ããããã³ããšã³ã ã·ã£ã㊠DOMããšããçšèªã¯ãéçºè ã Web ã¢ããªã±ãŒã·ã§ã³çšã«ã«ãã»ã«åãããåå©çšå¯èœãªã³ã³ããŒãã³ããäœæãããããã®ã³ã³ããŒãã³ãã®ã¹ã¿ã€ã«ãšåäœãã¢ããªã±ãŒã·ã§ã³ã®æ®ãã®éšåããåé¢ããã®ãæ¯æŽãã匷åãªæŠå¿µãæããŸããããã¯ãç¹ã«å¹ççãªã¬ã³ããªã³ã°ãšç¶æ 管çãå¿ èŠãšããè€éãªã¢ããªã±ãŒã·ã§ã³ãæ±ãå Žåã«ãææ°ã® Web éçºã«äžå¯æ¬ ãªèŠçŽ ã§ãã
ããã³ããšã³ã ã·ã£ã㊠DOM ã®éèŠæ§ãçè§£ããããšã¯ã AppMasterno-codeãã©ãããã©ãŒã ã䜿çšããéçºè ã«ãšã£ãŠéåžžã«éèŠã§ããããã«ãããå€§èŠæš¡ãªã³ãŒãã£ã³ã°ãå¿ èŠãšããã«ãé«åºŠã«ã€ã³ã¿ã©ã¯ãã£ãã§èŠèŠçã«é åç㪠Web ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããããã«ãªããŸãã AppMasterãã©ãããã©ãŒã 㯠Vue3 ãã¬ãŒã ã¯ãŒã¯ãå©çšããŠããããã®æŠå¿µã«å€§ããäŸåã㊠UI ã³ã³ããŒãã³ããäœæããããã³ããšã³ãã®ç¶æ ãå¹ççã«ç®¡çããŸãã
Shadow DOM ã¯ãWorld Wide Web Consortium (W3C) ãš Web Hypertext Application Technology Working Group (WHATWG) ã«ãã£ãŠç¶æãããŠãã HTML Living Standard ã®éèŠãªæŠå¿µã§ããããã«ãããéçºè ã¯ãéåžžã® DOM ããªãŒã«æ¥ç¶ãããåå¥ã®é衚瀺ã®ããã¥ã¡ã³ã ããªãŒãæã€ã³ã³ããŒãã³ããäœæã§ããã³ã³ããŒãã³ãã® CSSãJavaScriptãããã³ HTML ãçã«ã«ãã»ã«åã§ããŸãã
ããã³ããšã³ã Shadow DOM ã®äž»ãªäœ¿çšäŸã® 1 ã€ã¯ãWeb ã³ã³ããŒãã³ãæšæºã®éèŠãªéšåã圢æããã«ã¹ã¿ã HTML èŠçŽ ã®äœæã§ãã Shadow DOM ã䜿çšããŠã«ã¹ã¿ã èŠçŽ ã®åäœãæ§é ãã¹ã¿ã€ã«ãã«ãã»ã«åããããšã«ãããéçºè ã¯ã¢ããªã±ãŒã·ã§ã³å ã®ä»ã®èŠçŽ ãšç«¶åããªãåå©çšå¯èœãªèªå·±å®çµåã³ã³ããŒãã³ããäœæããä¿å®æ§ãšã³ãŒãã®åå©çšæ§ãä¿é²ã§ããŸãã
ããã³ããšã³ã Shadow DOM ã¯ãã«ã¹ã¿ã èŠçŽ ã®äœæããµããŒãããã ãã§ãªããWeb ã¢ããªã±ãŒã·ã§ã³ã®å¹çã«ãè²¢ç®ããŸããããã䜿çšãããšãéçºè ã¯ãŠãŒã¶ãŒã«è¡šç€ºãããå Žåã«ã®ã¿ã¬ã³ããªã³ã°ãããã³ã³ããŒãã³ããäœæã§ãããããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžããæåã«æå³ã®ãããã€ã³ããè¡ããããŸã§ã®æéãççž®ãããŸããããã¯ãã¢ãã€ã« ããã€ã¹ãäœéãããã¯ãŒã¯æ¥ç¶ã§äœæ¥ããå Žåã«ç¹ã«éèŠã§ãããå šäœçãªãŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ã®åäžã«è²¢ç®ããŸãã
ããã³ããšã³ã Shadow DOM ãäœæããã«ã¯ãææ°ã® Web ãã©ãŠã¶ãŒãæäŸãã JavaScript API ã䜿çšããæ¹æ³ããäžè¬çãªããã³ããšã³ã ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã䜿çšããæ¹æ³ãªã©ãããã€ãã®æ¹æ³ããããŸãããã®ãããªæ¹æ³ã® 1 ã€ã¯ã AppMasterã® Web ã¢ããªã±ãŒã·ã§ã³çæããã»ã¹ã§åºãå©çšãããŠããåè¿°ã® Vue3 ãã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ãã Vue.js éçºè ã¯ãã·ã³ã°ã« ãã¡ã€ã« ã³ã³ããŒãã³ã (SFC) ãš Vue.js ã¹ããã ã¡ã«ããºã ã䜿çšã㊠Shadow DOM ã³ã³ããŒãã³ããäœæã§ããŸãããããã®æ©èœã䜿çšãããšã匷å㪠UI ã³ã³ããŒãã³ããæäŸããé«éãã€è»œéã®ã¢ããªã±ãŒã·ã§ã³ãäœæã§ãããããéçºããã»ã¹ãããå¹ççã§æ¥œãããã®ã«ãªããŸãã
ããã³ããšã³ã Shadow DOM ã®æŠå¿µã䜿çšãããšãéçºè 㯠CSS ã¹ã³ãŒããããé©åã«ç®¡çã§ããããã«ãªããã³ã³ããŒãã³ããšã°ããŒãã« ã¹ã³ãŒãéã®ã¹ã¿ã€ã«ã®æŒæŽ©ãé²ãããšãã§ããŸããããã«ãããã³ãŒãããŒã¹ãããã¯ãªãŒã³ã§ä¿å®ãããããªããæçµçã«ã¯ Web ã¢ããªã±ãŒã·ã§ã³ã®éçºãšã¯ã¹ããªãšã³ã¹ãšããã©ãŒãã³ã¹ãåäžããŸããããã«ãããã³ããšã³ã ã·ã£ã㊠DOM ã¯ã¢ããªã±ãŒã·ã§ã³ã® UI ãæŽæ°ããããã»ã¹ãç°¡çŽ åããããŒãžãå®å šã«æŽæ°ããããšãªãã·ãŒã ã¬ã¹ãªæŽæ°ãå¯èœã«ããŸãã
AppMasterãã©ãããã©ãŒã ã®äžéšãšããŠãããã³ããšã³ã Shadow DOM ã³ã³ã»ããã¯ãé«å質㮠Web ã¢ããªã±ãŒã·ã§ã³ã®éçºã«ãããŠéèŠãªåœ¹å²ãæãããŸãããã®ãã©ãããã©ãŒã ã«ãã Vue3 ãã¬ãŒã ã¯ãŒã¯ã®å©çšãšããã®åŒ·åãªno-codeéçºæ©èœãçµã¿åãããããšã§ãéçºè ã¯ãèŠãç®ãçŸãããé«åºŠã«ã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ãäœæããããã«å¿ èŠãªããŒã«ãæäŸãããŸããããã«ã AppMasterãã©ãããã©ãŒã ã¯ãçæããããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«æè¡çè² åµããªãããšãä¿èšŒããéçºè ãæ©èœè±å¯ã§ã¹ã±ãŒã©ãã«ã§ä¿å®å¯èœãªãœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ã®æ§ç¯ã«éäžã§ããããã«ããŸãã
çµè«ãšããŠãããã³ããšã³ã ã·ã£ã㊠DOM ã¯çŸä»£ã®ããã³ããšã³ã Web éçºã«ãããŠéèŠãªæŠå¿µã§ãããWeb ã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªããã©ãŒãã³ã¹ãšä¿å®æ§ã«è²¢ç®ãããã«ãã»ã«åãããåå©çšå¯èœãªå¹ççãªã³ã³ããŒãã³ããäœæããææ®µãéçºè ã«æäŸããŸãã AppMasterno-codeãã©ãããã©ãŒã ã¯ãããã³ããšã³ã ã·ã£ã㊠DOM ã³ã³ã»ãããš Vue3 ãã¬ãŒã ã¯ãŒã¯ã®åãå©çšããŠãããã©ãŒãã³ã¹ãé«ãèŠèŠçã«é åç㪠Web ã¢ããªã±ãŒã·ã§ã³ãçæããæçµçã«ã¯åçåãããã³ã¹ãå¹çã®é«ãéçºãšã¯ã¹ããªãšã³ã¹ãå¹ åºãé¡§å®¢ã«æäŸããŸãã