è§åºŠ2ã³ã³ãã€ã© - ãã®èšäºã¯ãã¬ããŒãããã¢ã¹ããã·ã¥ïŒããã¢ã¹ããã·ã¥ïŒã®æèš³ã§ãã å ã®ã¬ããŒããžã®ãªã³ã¯ã¯èšäºã®æåŸã«èŠã€ããããšãã§ããŸãã
æŠèŠ
ããã¢ã¹ããã·ã¥ - ã°ãŒã°ã«ã®ç€Ÿå¡ããã³ã³ã³ãã€ã©ã®æ§æéšåã®ã»ãšãã©ãäœæã¯ãŒãã³ã°ã°ã«ãŒãã¢ã³ã®ã¥ã©éçºè ã®äžå¡ã ä»æ¥ã圌ã¯ããŒãã¯ãè§ã®å åŽãã©ã®ããã«æ©èœãããã«ã€ããŠèªã£ãŠããŸãã ãããŠãããã¯çŽ æŽããããè€éãªãã®ã§ã¯ãããŸããã
ç§ã¯ããªããèªåã®ã¢ããªã±ãŒã·ã§ã³ã§åŸãç¥èã®äžéšã䜿çšããããšãé¡ã£ãŠããŸãã ãããããããªãã¯ãç§ãã¡ã®ããŒã ã®ããã«ãç¬èªã®ã³ã³ãã€ã©ãå°ããªãã¬ãŒã ã¯ãŒã¯ãäœæããŸãã ç§ã¯ãã³ã³ãã€ã©ãæã ã¯æã ã®ç®æšãéæããæ¹æ³ã«ã€ããŠã話ããŸãã
ã³ã³ãã€ã©ã¯äœã§ããïŒ
ããã¯ãå ¥åããŒã¿ã»ã¢ããªã±ãŒã·ã§ã³éã§èµ·ãããã¹ãŠã¯ãããªãã®å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ïŒåœŒãã¯ããªãã®ããŒã ããã³ãã¬ãŒããªã©ãå¯èœïŒã§ãã

éã§èµ·ãããã¹ãŠã - ã³ã³ãã€ã©ã®æŽ»åã®çã§ãã è¡šé¢äžã§ã¯ãããã¯çŽç²ãªéæ³ã§ãããšæããããããããŸããã ããããããã¯ããã§ã¯ãããŸããã
ç§ãã¡ã¯ãä»æ¥èŠãŠããŸããïŒ

ãŸããæã ã¯ãè¿ éãªä»äºãšã¯äœãæå³ããã®ãã®ããã©ãŒãã³ã¹ã«ã€ããŠå°ã話ãïŒ æã ã¯ãæã ãæã£ãŠããçš®é¡ã®å ¥åã®ãã«ã€ããŠè©±ããŠããŸãã
æã ã¯ãŸãããããäœã§ãããã®åå¥è§£æã«ã€ããŠè©±ããšããã®è§åºŠ2ã³ã³ãã€ã©ã¯ãåæãè¡ããŸãã ç§ãã¡ã¯ãè§åºŠ2ãåæãããããŒã¿ãåãåããããããã©ã®ããã«åŠçãããã«ã€ããŠã話ããŸãã ãŸããåçŽãªå®è£ ãããã®åŸãããã«æ¹åãããæ¹åã§äžè¬çã«ã¯ããã®ããã»ã¹ã®å®è£ ã§ã¯ãæã ã¯ã3åãæã£ãŠããŸãã ã ããæã ã¯ããããããŸããã ãããã¯ãæã ã¯ã³ã³ãã€ã©ã®å éä»äºãéæããããšãã§ããŸããããã«ãã£ãŠæ®µéã§ãã
æã ã¯ãŸãããã€ãããã¯ïŒãžã£ã¹ãã»ã¿ã€ã ïŒãšéçïŒåãã£ãŠïŒã³ã³ãã€ã«ã®é·æãšçæãå¥ã®ç°å¢ã«ã€ããŠèª¬æããŸãã
ããã©ãŒãã³ã¹ïŒé«éãªäœæ¥ãæå³ïŒ
ç¶æ³ãæ³åïŒç§ã¯ãããé«éã«åäœããããšãã¢ããªã±ãŒã·ã§ã³ãšç¢ºèªãæžããŸããã ç§ã¯äœãæå³ããã®ã§ããïŒ ããªããèãããããããªãæåã®äºã¯ãã¢ããªã±ãŒã·ã§ã³ã®è² è·ã«éåžžã«è¿ éã§ãããšããããšã§ãã ããªãã¯ãAMP-ããŒãžGoogleã®ãèŠãããšããããããããŸãïŒ åœŒãã¯ããã«éçŸå®çã§ããããŒãããŸãã ããã¯ããé«éãã®æŠå¿µã«èµ·å ããããšãã§ããŸãã
ãããããç§ã¯å倧ãªã¢ããªã䜿çšããŠããŸãã ç§ã¯1ã€ã®åããå¥ã®ãã®ã«åãæ¿ããŸãã äŸãã°ãç°¡åãªã¬ãã¥ãŒããæ¡å€§ããŒãžã«ããã®ç§»è¡ã¯éåžžã«éãèµ·ãã£ãŠããŸãã ãŸããé床ãç¹åŸŽã¥ããããšãã§ããŸãã
ãããšããã®ã¯ãç§ã¯å€§ããªããŒãã«ããããšããŸãããããšä»ç§ã¯ããã®å€ã®ãã¹ãŠãå€æŽããŸãã ç§ã¯æ§é ãå€æŽããããšãªããæ°ããªäŸ¡å€ãåµé ããŸãã ããã¯æ¬åœã«éãã§ãã ãã®ãã¹ãŠ - åãã³ã³ã»ããã®ç°ãªãåŽé¢ãããªããã¢ããªã±ãŒã·ã§ã³å ã«æ³šæãæãå¿ èŠãããããšãç°ãªããã®ã
æ¹æ³ã«è¡ããŸã
ç§ã¯ãå€ãã®æ¹æ³ïŒçµè·¯åæ¿ïŒã®é·ç§»ã«è©³è¿°éäžããããšæããŸãã
ããªããããäžåºŠãæ°Žè·¯äžã®æ çµã¿ã®ç Žæ£ãšãåäœæãã¯ãªãã¯ããŸã - éèŠãªãã€ã³ãã 圌ã¯ãæ§é ç©ã«ä»çããªãïŒãã¹ãŠç Žå£ããããã¹ãŠæ°ãã«åäœæããŸãã
ã©ã®ããã«ç§ã¯ããéãããã®ããã»ã¹ãäœãããšãã§ããŸããïŒ
ããã«äœããè¡ãã«ã¯ãé床ã枬å®ããå¿ èŠããããŸãã ããã¯ãã¹ããå¿ èŠã§ãã æ·±ãæšæ³ã®ãã³ãããŒã¯ - ç§ãã¡ã䜿çšããããã©ãŒãã³ã¹ãã¹ãã®äžã€ã ããªãã¯ãã®ããšã«ã€ããŠèããããšããããŸãã äºå䜿çšãããŠãããã®ã³ã³ããŒãã³ããã ããªããç¹å®ã®æ·±ãã«å°éãããŸã§ã«ãªããŸã§ããã®ååž°ã³ã³ããŒãã³ãã

æã ã¯512åã®éšååã³ç Žå£ãããããããã®ã³ã³ããŒãã³ããäœæããããšãã§ãããã¿ã³ããããŸãã 次ã«ãæã ã¯ãéšåã®ç Žå£ãšåµé ã«è²»ããããŠããã©ã®ãããã®æéã枬å®ããŸãã ãããŠæ¹æ³ã§ç§»è¡ããããŸãã ãã1ã€ã®ãã¥ãŒããã®ç§»è¡ã ãã¹ãŠã®ç Žå£ - ãã¹ãŠã®åµé ã
ç§ãã¡ã¯ãå ¥åãæã£ãŠããŸããïŒ
ã³ã³ããŒãã³ã
ç§ãã¡ã¯ãé£æãæã£ãŠããããšç§ã¯ã圌ãã¯ãã¹ãŠãç¥ã£ãŠãããšæããŸãã

圌ãã¯ããã³ãã¬ãŒãïŒãã³ãã¬ãŒãïŒãæã£ãŠããŸãã ããªãã¯ãå èµã®ãã³ãã¬ãŒããäœãããå¥ã®ãã¡ã€ã«ã«å ¥ããŠã圌ããã³ã³ããã¹ããæã£ãŠããããšãèŠããŠãã䟡å€ã§ããããšãã§ããŸãã
ãã®æ§è³ªã®ã³ã³ããŒãã³ãã®ã³ããŒã¯ - ãã³ãã¬ãŒãïŒãã³ãã¬ãŒãïŒãæ§ç¯ããããã«äœ¿çšãããã³ã³ããã¹ãããŒã¿ã§ãã ç§ãã¡ã®ã±ãŒã¹ã§ã¯ãæã ã¯ãŠãŒã¶ãŒãæã£ãŠããŠãŒã¶ãŒãååïŒãã®å Žåã¯ãç§ã®ååãïŒæã£ãŠããŸãã
æš¡æ§
次ã«ãæã ã¯ãã³ãã¬ãŒããæã£ãŠããŸãã ããã¯ãããã§ããªãã¯ãã®ç³ãåºãHTMLã®ãã¹ãŠãé©çšããããšãã§ãããã©ãŒã ã®ãããªãã®ãæ¿å ¥ããããšãã§ããHTMLã®ç°¡åã§ãã

ããã§ã¯ãããã€ãã®æ°ããæ§æãæã£ãŠããïŒäºéã®äžæ¬åŒ§ãè§æ¬åŒ§ãäžžæ¬åŒ§ãèŠããŠããŸããïŒ ãã®è§åºŠã®ããããã£ãã€ãã³ããçµåã ä»æ¥ãæã ã¯ãäžæ¬åŒ§ãšãã®æå³ã«ã€ããŠã話ããŸãã æ段æå³è«ã®èŠ³ç¹ããããã³ã³ããŒãã³ãããããŒã¿ãååŸããç¹å®ã®å Žæã§ãããã眮ãããã«ãã ããŒã¿ã¯ãããã¹ããæŽæ°ããå¿ èŠããããšãã
ã¬ã€ãã©ã€ã³

CSSã»ã¬ã¯ã¿ - ãã£ã¬ã¯ãã£ãã¯ãã»ã¬ã¯ã¿ãå«ãŸããŠããŸãã äžçªäžã®è¡ã¯ãè§åºŠã¯ãããŒã¯ã¢ãããééãããšããããã¯ããã€ãã®èŠçŽ ã«å¯Ÿå¿ããæ什ã§ããå Žåããããå®è¡ããããšã§ãã
ç§ãã¡ã¯ããã©ãŒã èŠçŽ ãäœæãããã³ã«ããã®ãã£ã¬ã¯ãã£ããäœæããŠãã ãã - ç§ãã¡ã¯ãã©ãŒã ã®ããã®ã»ã¬ã¯ã¿ãæã£ãŠãããããã¯æã ãèšã£ãŠããããã ãšä»®å®ããŸãã
åæ§ã«ãngModelãšã ããªãã¯ngModelå±æ§ãäœæãããšãã¯ãäœæããã³ãã£ã¬ã¯ãã£ããªããã°ãªããŸããã
ãããã®ãã£ã¬ã¯ãã£ãã¯ãããŒã¹ãšããããšãã§ããŸãã ããã¯ç§ãã¡ã®äŸåé¢ä¿ã®è¡šçŸã§ãã

äŸåæ§ã¯ããã»ã©èŠæ±ãããngModel ngFormããšããéå±€æ§é ãæã£ãŠããŸãã
ãããŠãäœè§åºŠãäœããŸããïŒ
圌ã¯ãããªãŒã®1ã€ã®äžã®ã¬ãã«ãé«ãã§ãæå¯ãngFormãã®æ€çŽ¢ã§ãã¹ãŠã®æšã«èŠããŸãã 圌ã¯å åŒã䞡芪ã ããèŠãŠããªãã ããã
ããä»ã®å ¥åããããŸãããæã ã¯è©³çŽ°ã«ãããã«äœãããšã¯ãããŸããã
è§åºŠã§è¡ãããŠãããã¹ãŠã¯ãã³ã³ãã€ã©ãééããŸãã
ãŸããæã ã¯ãå ¥åãæã£ãŠããŸãã ç§ãã¡ãå¿ èŠãšãã次ã®ããšã¯ - ãããç解ããããšã§ãã
ããã¯åŠæ³ã®ã»ããã ãã ããããã¯ããŸã ãããã¯ããã€ãã®æå³ãæã£ãŠããŸããïŒ
ããã»ã¹ã®åå¥è§£æ
第äžæ®µé
äŸãã°ãæã ã¯ç¹å®ã®ãã¿ãŒã³ãæã£ãŠããHTMLãšä»®å®ããã
æåºãã³ãã¬ãŒã

æã ã¯ãã³ã³ãã€ã©ããããç解ããããã«ãæ³åã§ããããã«ïŒ
ããã¯ãã¢ãã©ã€ã¶ãæ±ããŸãã 圌ã¯ãåæåãèªã¿èŸŒã¿ãæå³ãåæããŸãã ã€ãŸããããªãŒãäœæããã§ãã åèŠçŽ ã¯ã1ã€ã®ãªããžã§ã¯ãã®ã¿ãæã£ãŠããŸãã ããã€ãã®ååããããš - èŠçŽ ã®ååãåãæã¡ãŸãã ã¬ããèšãã«ã¯ãããã¹ãããŒãã¯ãJSONã®ããããã£ãæã€ããã¹ããªããžã§ã¯ãã§ãã ãŸããå±æ§ãæã£ãŠããŸãã ç§ãã¡ã¯ããã¹ãããããªã¹ããšããŠããããã¹ãŠããšã³ã³ãŒãããã¡ããã©èšã£ãŠã¿ãŸãããã æåã®å€ã¯ - ããã¯ããŒã第äºã§ãã - å±æ§å€ã§ãã ããã«ãè€éãªãã®ã¯ãããŸããã ãã®ãããªè¡šçŸã¯æœè±¡æ§ææšïŒ - AST ASTãè±èªïŒãšåŒã°ããŠããŸãã ããªãã¯ãå€ãã®å Žåããã®çšèªãèãããšãã§ããŸãã HTML - ããããã¹ãŠã§ãã
ã©ã®ããã«æã ã¯ãããŒã¿ãšã®æ¥ç¶èŠçŽ ãè¡šãããšãã§ããŸããïŒ

次ã®ããã«æã ã¯ããã衚瀺ããããšãã§ããŸãã ããã¯ãã - ã§ããããã¹ãããŒãã¯ãæã ã¯ããã¹ãã®ç¹æ§ãæã€JSONãªããžã§ã¯ããæã£ãŠããŸãã ããšããšè¡šç€ºããããã¹ãããããŸããã®ã§ãããã¹ãã¯ã空ã§ãã ããã¹ãã¯ãçä¿¡ããŒã¿ã«äŸåããŸãã çä¿¡ããŒã¿ã¯ããã®è¡šçŸã§æ瀺ããŸããã
ä»»æã®åŒã¯ãŸãã圌ãã¯äœãæå³ãããã«ã€ããŠè©äŸ¡ãããŸãã
ããªãã¯ã¢ããŠã³ã¹ãé¢æ°è¡šçŸisrolzovatãµã€ã¯ã«å ã®ããããŸã æã ã¯ããªããè¡šçŸãæ±ãããšãã§ãããããéããŠãã€ãã®ãããªãã®ããæã€ããšãã§ããŸããã
ç§ãã¡ã¯ã財ç£ãžã®éãšããŠããã®è¡šçŸãuser.nameãè¡šãããšãã§ããŸãã ãããŠãŸããç§ãã¡ã¯ããªãã®ãã³ãã¬ãŒãã¯ãããã®çºçŸãããããããããã©ã®ããã«ææ¡ããããšãã§ããŸãã
è¡šçŸã®å Žæã決å®ããŸã
ã§ã¯ããªãããã¯ãšãŠãéèŠãªã®ã§ããïŒ ãªãè¡šçŸãããSDAããæ¥ãŠããå Žæãç¥ãããšãéèŠãªã®ã§ããïŒ
ç§ãã¡ã¯ãããã°ã©ã ã®å®è¡äžã«ãããªãã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããããã§ãã ã¡ããã©ããªãã®ãŠãŒã¶ãŒããããã®ãšã©ãŒã«ã€ããŠç¥ã£ãŠããããšãèšã£ãŠã¿ãŸãããã
ãããŠãäŸå€ããããŸããïŒ äŸãã°ãæªå®çŸ©ã®ååãèªã¿åãããšã¯äžå¯èœã§ãã ãã®åé¡ãçºçããå Žåã¯ãã«è¡ããšãšã©ãŒãããã¬ããã§ãã¯ããå¿ èŠããããæåã®ãšã©ãŒã§ãã¬ãŒã¯ãã€ã³ããèšå®ããŸãã ãã®åŸããšã©ãŒãçºçããå Žæãæ£ç¢ºã«ç解ããå¿ èŠããããŸãã
è§åºŠã®ã³ã³ãã€ã©ã¯ãããå€ãã®æ å ±ãæäŸããŸã

ãã³ãã¬ãŒããã®ãšã©ãŒã®ã足ãè²ãŠããã«çœ®ããããããããã瀺ããã ç®æš - ãäŸãã°ããšã©ãŒãçºä¿¡ããããšãã䜿ãã®ãã³ãã¬ãŒãåã®2è¡ç®14ã§ããã®ç¹å®ã®è£éããèŠãããŸãã ãããè¡ãããã«ãç§ãã¡ã¯ã©ã€ã³ã«å¿ èŠãšåçªå·ã¯SDAã«ãããŸããã
ããã«ãæã ã¯ASDãããæ§ç¯ããããã®åæè£ çœ®ãå¿ èŠãšãããã®ïŒ
ããã§ã¯å€ãã®æ©äŒããããŸãã ããšãã°ãç§ãã¡ã¯ããã©ãŠã¶ã䜿çšããããšãã§ããŸãã
ãã©ãŠã¶ - å倧ã¢ãã©ã€ã¶HTMLãå³ïŒ 圌ã¯æ¯æ¥ããããã£ãŠããŸãã ãã®ãããªã¢ãããŒãã¯ãæã ã¯è§1ãæã ã¯ãè§2ã®éçºã«äœ¿çšãå§ããåãã¢ãããŒããéçºããªããã°ãªããŸããã§ããã
ä»ãç§ãã¡ã¯äºã€ã®çç±ããããã®ãããªç®çã®ããã«ããã©ãŠã¶ã䜿çšããªãã§ãã ããã
- ãã©ãŠã¶ã¯ãè¡ãšåã®æ°ãåŒãããšã¯ã§ããŸããã HTMLãã©ãŠã¶ãåæããå ŽåãåçŽã«ãããã䜿çšããªãã§ãã ããã
- ç§ãã¡ã¯ãè§åºŠããµãŒããŒäžã§åããŠããããŸãã
ãµãŒããŒãäœã®ãã©ãŠã¶ãæã£ãŠããªãããšã¯æããã§ãã æã ã¯ãæã ã¯ãã©ãŠã¶ãšç§ãã¡ã¯äœãä»ã®ãã®ã䜿çšããŠããµãŒããŒã䜿çšãããã©ãŠã¶ãèšããããããŸããã ãããŠããã¯ã§ããã ãããããã®åŸãç§ãã¡ã¯ããã®ãããªSVGãšããŠããããããã¯ã«ãªã£ãããŸãã¯ã«ã³ãã®é 眮ãç§ãã¡ã¯ã©ãã«ã§ããããæã£ãŠããåãã»ãã³ãã£ã¯ã¹ãŸããã ãããã£ãŠãJavaScriptãæç²ãããã³ã¢ãã©ã€ã¶ãæ¿å ¥ããæ¹ãç°¡åã§ãã ããã¯ãç§ãã¡ãäœããã¹ãããæ£ç¢ºã§ãã
ããã§ãæã ã¯ãHTMLãè¡šçŸã«ã€ããŠè©±ããŸããã
æã ã¯èŠã€ããããšã®æéãæ瀺ããããïŒ
ç§éã¯ã¡ããã©å¥ã®ããããã£ãè¿œå ããããšã§ãèŠçŽ ãè¡šãJSONãªããžã§ã¯ããä»ããŠãããã衚瀺ããããšãã§ããŸãïŒãã£ã¬ã¯ãã£ããã ãããŠãæã ã¯ãããã®ãã£ã¬ã¯ãã£ãã®ã³ã³ã¹ãã©ã¯ã¿é¢æ°ãåç §ããŠãã ããã
ngModelãšå ¥åããŒã¿ãšã®äŸã§ã¯ãJSONãªããžã§ã¯ããšããŠãã®èŠçŽ ãè¡šãããšãã§ããŸãã 圌ã¯ãå ¥åãå±æ§ãngModelãšãã£ã¬ã¯ãã£ãã®ååãæã£ãŠããŸãã ç§ãã¡ã¯ããã¶ã€ããŒãžã®ãã€ã³ã¿ãæã£ãŠããããšæã ã¯ããšãææããå¿ èŠããããããæã ã¯ngModelãäœæããæã ã¯ngFormãå¿ èŠãšããç§ãã¡ã¯ããã®æ å ±ãããã¯ã¢ããããå¿ èŠãããå Žåãæã ã¯ãäŸåé¢ä¿ããã£ããã
HTMLæ å ±ãéä¿¡ãæ什ã«SDAãèãã - ããªãã®ç掻ã®äžã§æã ã¯ããããã¹ãŠã å®çŸããŠïŒ ããã¯æãç°¡åãªæ¹æ³ãè¡ãããšãã§ããŸããïŒ
ãŸãHTMLãç解ããŠããŸãã DOMèŠçŽ ãäœæããæãç°¡åãªæ¹æ³ã¯äœã§ããïŒ ãŸããããªããinnerHTMLããããã£ã䜿çšããããšãã§ããŸãã 第äºã«ãããªãã¯ãæ¢åã®èŠçŽ ãåãããããè€è£œããããšãã§ããŸãã ãããŠç¬¬äžã«ãããªãã¯ã®document.createElementãåŒã³åºãããšãã§ããŸãã
æ祚ãããŠã¿ãŸãããã æé - 誰ãinnerHTMLã®ãžã®éãšèããŠããŸããïŒ ãããŠã誰ãæéã®ã¢ã€ãã ãelement.cloneNodeã ãããšèšããŸãããïŒ ãããšããæãç°¡åãªæ¹æ³ - ããã¯element.createElementïŒ
æããã«ãç©äºã¯ãæéã®çµéãšãšãã«å€åããŸãã ããããçŸæç¹ã§ã¯ïŒ
- innerHTMLãããã㣠- ããã¯æãé
ããªãã·ã§ã³ã§ãã ãã©ãŠã¶ã¯ãããªãã®ã¢ãã©ã€ã¶ãåŒã³åºãããªãã®æååãåããåæåãæ©ããšDOMèŠçŽ ãæ§ç¯ããå¿
èŠãããã®ã§ãããã¯ãæããã§ãã æããã«ãããã¯éåžžã«é
ãã§ãã
- element.cloneNode㯠- ãã©ãŠã¶ããã§ã«æ圱ãæ§ç¯ãããŠããã®ã§ãæéã®æ¹æ³ã§ãããããã¯ã¡ããã©ãã®æ圱ã®ã¯ããŒã³ã ããã¯ã¡ããã©å¥ã®èŠçŽ ã®ã¡ã¢ãªã«è¿œå ããããšã§ãã ããã¯å¿
èŠãªããšãã¹ãŠã§ãã
- document.createElement - ããã¯åã®2ã€ã®æ¹æ³ã®éã®ãã®ã§ãã ãã®æ¹æ³ã¯ãelement.cloneNodeã«éåžžã«è¿ãã§ãã å°ãã¯ããããéåžžã«è¿ããé
ããããã
ããªãã¯ããŸãã»ã®äœ¿çšelement.createElementã¯ãæ°ããèŠçŽ ã®DOMãäœæããããã«ããŸãããããšèšããŸãã
ããã§åœŒã¯ãè§åºŠ1ãåããããããŠæã ãéçºãå§ããšããŠ2è§åºŠãšäŒçµ±ã«ãããšãããã¯ãå°ãªããšãã§ã¯ãªãè§åºŠã®å Žåã«ã¯ãå ¬æ£ãªæ¯èŒã§ã¯ãªãããšãå€æããŸãã ã¢ã³ã®ã¥ã©äœ¿çšã®å Žåã¯ãæã ã¯ããã€ãã®èŠçŽ ãäœæããå¿ èŠããããŸããããã以å€ã¯ãç§ãã¡ã¯ãããã®èŠçŽ ãé 眮ããå¿ èŠããããŸãã ç§ãã¡ã®ã±ãŒã¹ã§ã¯ãæã ã¯æ°ããããã¹ãããŒããäœæãããã®ã§ããããŸããæã ã¯åŸã«ãæã ã¯ãããæŽæ°ãããã®ã§ãuser.nameãã責任ããããã®ãèŠã€ããå¿ èŠããããŸãã
æã ã¯æ¯èŒããã°ãã®ãããæã ã¯ãäœæãšé 眮ãšæ¯èŒããããšããããŸãã ããªããinnerHTMLããããã£ãŸãã¯cloneNodeãã䜿çšããå Žåã¯ããã¹ãŠã®æ¹æ³ã®DOMæ§é ãåæž¡ãå¿ èŠããããŸãã createElementã®ãã¯createTextNodeã䜿çšããŠããå Žåãããªãã¯ãã®ã¢ã¯ã·ã§ã³åŽãè¿åããŸãã ããªãã¯ãåã«ã¡ãœãããåŒã³åºããšãããã«ãããå®è¡ãããŸãã æ°èšããä»äººãããŸããã
ãã®æ¯èŒç¹ãåã³ã®createElementã¯createTextNodeã§ã¯ãäž¡æ¹ãåãé床ïŒãã€ã³ãã£ã³ã°ã®æ°ã«å¿ããŠïŒçšåºŠã§ãã
第äºã«ãããã¯ã¯ããã«å°ãªãããŒã¿æ§é ããšããŸãã ããªãã¯ããã®ãããªæ¹æ³ã¯ç°¡åã§ãã»ãŒåãé床ã®ã§ãããããã¹ãŠã®ææšãªã©ã远跡ããå¿ èŠã¯ãããŸããã ãããã£ãŠãæã ã¯ãããã®ã¡ãœããã䜿çšããä»ã®ãã¬ãŒã ã¯ãŒã¯ãããã®ã¢ãããŒãã«åãæ¿ããŸãã
ã ããæã ã¯ãã§ã«DOMèŠçŽ ãäœæããããšãã§ããŸãã
ä»ãç§ãã¡ã¯ããã£ã¬ã¯ãã£ããäœæããå¿ èŠããããŸã
ç§ãã¡ã¯ã芪èŠçŽ ã«åäŒç€Ÿã«ããäŸåæ§æ³šå ¥ããå¿ èŠããããŸãã ç§ãã¡ã¯DOMèŠçŽ ãšããã®èŠçŽ ã®ããã®ã¬ã€ãã©ã€ã³ãå«ãŸããŠngElementãšåŒã°ããããŒã¿æ§é ããæã£ãŠãããšä»®å®ããŸãã 芪ããããŸãã DOMããªãŒå ã®ãã®åçŽãªããªãŒã

ãããŠãã©ã®ããã«æã ã¯SDAã®DOMèŠçŽ ãäœæããããšãã§ããŸããïŒ
ç§ãã¡ã¯ããã³ãã¬ãŒããæã£ãŠãæã ã¯SDAãæ§ç¯ããããããèŠçŽ ãæã£ãŠããŸãã æã ã¯ããã¹ãŠããã§äœãã§ããŸããïŒ

ç§ãã¡ã®ngElementãšã³ã³ã¹ãã©ã¯ã¿åŒã³åºãã®document.createElementã§ã¯ãå±æ§ãã¹ãã£ã³ããŠãèŠçŽ ã«å²ãåœãŠããã®åŸãç§ãã¡ã®èŠªã«èŠçŽ ãè¿œå ããŸãã ããªããèŠãããšãã§ããããã«ãéæ³ã¯ãããŸããã
ãããŠããã£ã¬ã¯ãã£ãã«é²ã¿ãŸãã ãããã©ã®ããã«åäœããŸããïŒ
ç§ãã¡ã¯ãçµåã確èªããäœãšãããããåŸãïŒåŸã§ããã«ã€ããŠã®è©³çŽ°ãæããŠããïŒãšãåã«æ°ãããã¶ã€ããŒã®ããã®ã³ãŒã«ãåãã¹ããã圌ãäžãããšåºèå°å³ã å°å³ã¯ããã£ã¬ã¯ãã£ãã®ã€ã³ã¹ã¿ã³ã¹ãžã®ãã£ã¬ã¯ãã£ãã®ã¿ã€ãïŒngModelïŒã«åãæ¿ãããŸãã
ãããŠããã¹ãŠãã®æ€çŽ¢ãã£ã¬ã¯ãã£ãã¯ããã®ããã«åäœããŸãïŒæã ã¯ãæåã«ãã§ãã¯èŠçŽ èªäœã®ãã£ã¬ã¯ãã£ãããïŒããã¯ãã£ã¬ã¯ãã£ããæã£ãŠãããã©ããïŒãååŸããæ¹æ³ããããŸãã ããã§ãªãå Žåãç§ãã¡ã¯èŠªã«æ»ã£ãŠãããã«ç¢ºèªããŠãã ããã
ããã¯ãããªããè¡ãããšãã§ããŸãæãåçŽãªãã®ã§ãã ç§ãã¡èªèº«ããã®æ¹åã§éçºããŸããã ãããŠããã¯åäœããŸãã
éèŠãªè©³çŽ°ïŒçµåã ãã€ã³ãã£ã³ã°ã衚瀺ããã«ã¯ïŒ
ããŒã - ããªãã¯ãåã«ç®æšãæã£ãŠãããã€ã³ãã£ã³ã°ã»ã¯ã©ã¹ãäœæããŸãã 圌ãã¯ãããã¹ãããŒãã«ãªããŸãã
ç§ãã¡ã¯ãããããã£ã¯ããã®å Žåã«ã¯ãããŒãã®å€ã§ããç®æšãããã¯å€ãé 眮ããå Žæã§ãã ãããŠãè¡šçŸã

ã¹ãããã¯ããã®ããã«åäœããŸãïŒãã³ã«ããªããåŒãè©äŸ¡ãããããããã¡ããã©å€æŽããããšããããªãã¯ã¿ãŒã²ããã«ä¿ç®¡ããŠãã ããã
- ã¿ãŒã²ããã®æŽæ°ãšä»¥åã«æ ŒçŽãããä»ã®å€ãæåã«ãããå€æŽãããå Žåã¯ãåŒãè©äŸ¡ããïŒããã¯ããªãã次ã®ã¡ãœãããæã€ããšãã§ãããã§ãã

æã ã¯å ã«è¿°ã¹ããããã®äŸå€ã«ã€ããŠã¯ã - ç§ãã¡ã¯ãè©äŸ¡ãã¹ããã©ããã³ã°ããããã®ãã£ããæ¹æ³ãè©ŠããŠã¿ãŠãã ããåŒã³åºããŸãã äŸå€ãããªã¬ããããšãæã ã¯åçæãã圌ã®ããã«ãè¡ãšåã®æ°ã®ã¢ãã«ãäœæããŸãã
ã ããæã ã¯ãè¡ãšãšã©ãŒãçºçããåæ°ãååŸããŸãã ããã¯æã ããã¥ãŒã«é¢é£ãããã¹ãŠã§ãã ãããæåŸã®ããŒã¿æ§é ã§ãã

ãã¬ãŒã³ããŒã·ã§ã³ - ãã®ãã³ãã¬ãŒãèŠçŽ ã æã ã¯ããšã©ãŒã³ãŒããèŠãå Žåã«ã¯ããã - ç§ãã¡ã¯ããããã®ã¢ã€ãã¢ã衚瀺ãããŸãã ããã¯ã¡ããã©ãã³ãã¬ãŒãèŠçŽ ã§ãã ãããŠãæã ã¯è¡šçŸã§ããããçµåããŸãã ãã¬ãŒã³ããŒã·ã§ã³ã¯ãèŠçŽ ãngã®ãšã¹ãã£ã³ãšãã§ãã¯ã¯ããã®çµåãããŒãã£ãã§ãã¯æ¹æ³ãªãã³ã«çµåãæåãæããŸãã
ã ããæã ã¯æåã®ã¹ããŒãžãçµããŸããã ç§ãã¡ã¯ãæ°ããã³ã³ãã€ã©ãæã£ãŠããŸãã ãããŸã§æã ã¯ãé«éã®ããã«ïŒ ã»ãšãã©è§åºŠ1.æã£ãŠè¯ããšåãã¬ãã«ã ããç°¡åãªã¢ãããŒãã䜿çšããŠãæã ã¯åãé床ãéæããŠããŸãã ããããè§åºŠ1ã¯é ãã§ã¯ãããŸããã
第äºæ®µé

ã©ã®ããã«æã ã¯ãããã»ã¹ãã¹ããŒãã¢ããããããšãã§ããŸããïŒ æ¬¡ã®ã¹ãããã¯äœã§ããïŒ æã ã¯èŠéããŠãããšããããšïŒ æ£ããããŸãããã
ç§ãã¡ã¯ãããŒã¿æ§é ã«é¢ä¿ããŠããäœããå¿ èŠãšããŠããŸãã ããã¯ããŒã¿æ§é ã«ãªããšãå®éã«ã¯ãããã¯éåžžã«é£ãã質åã§ãã æåŸã«æ¯èŒãããšããæã ã¯ã®try-catchãããããã°ã©ã ãæžããããç§ãã¡ã¯ãããç¡èŠããå Žåãæã ã¯ãã£ãããšããããã»ã¹ããŠã³æ©èœã®å€ãã衚瀺ããããã€ã³ãã®å€ãã®ããšãããªããæé©åãããã§ãã ããªããããã°ã©ã ã®ããŒã¿æ§é ã®é ãä»äºã®çç±ãèããå Žåã圌ãã¯ããªãã®ããã°ã©ã ã«æ£åšããŠããã®ã§ãããã¯ãéåžžã«é£ããåé¡ã§ãã ããã¯ãããŒã¿æ§é ã®ããšã ããã ã®æšæž¬ã§ãã
æã ã¯å®éšãè¡ããç解ããããšããŸããã å°å³ã®å åŽã®ngElementsïŒæã ã¯ããããã®ã¬ã€ãã©ã€ã³ãèŠãŸããã

ããã¯ãDOMããªãŒå ã®åèŠçŽ ã®ããã«ãæã ã¯æ°ããããããäœæããããšãå€æããŸããïŒ äžã€ã¯ãæã ã¯ããããäœæããŠããªããäœã®æéãååšããªãããšãèšãããšãã§ããŸãã ããã§ããç§ãã¡ã¯åžžã«ãããããäœæã¬ã€ãã©ã€ã³ãšèªã¿åºããæ å ±ãšãããåããŸãã ããã¯ç¡é§ãªããšãã§ããããã¯ã¡ã¢ãªããªãŒããŒããŒãããããšãã§ããèªã¿åãã¯ããŸã ãã°ããã®éãããŸãã«ãããããŸãã
å¥ã®ã¢ãããŒãã¯ãããŠãç§ãã¡ã¯äžã€ã®èŠçŽ ã«ã®ã¿10ãã£ã¬ã¯ãã£ããèš±å¯ãããããšèšãããšãããããŸããã 次ã¯ãç§ãã¡ã¯ããã£ã¬ã¯ãã£ãã®èŠçŽ ãã£ã¬ã¯ãã£ããšçš®é¡ã®ã¯ã©ã¹inlinengElement 10ããããã£ãäœæãã»ãªããç§ãã¡ã¯10æ¡ä»¶æãäœæããŠãããã£ã¬ã¯ãã£ããèŠã€ããããšã ããã¯é«éã§ããïŒ ããããã
ããã¯å³ãã¡ã¢ãªãªãœãŒã¹ã倧éã«æ¶è²»ããªãã®ã§ããïŒ
ããšãã°ãã€ã³ã¹ããŒã«ïŒããªãã¯ããããã£ã§ã¯ãªããããããèšå®ããŸãã èªã¿åãããããã10ã®æ¡ä»¶ã®å°ãé ãããšãã§ããŸãã ããã¯ãæ£ç¢ºã«ã¯JavaScript VMçšã«æé©åãããå Žåãã§ãã JavaScriptã®VMã¯ïŒããªããããªãã®ã¬ãžã£ãŒã§ããããã°ãŒã°ã«ããšãã§ããŸãïŒé ãã¯ã©ã¹ãäœæããããšãã§ããŸãã ããã¯ãããé«éãªJavaScriptã®VMãäœæããŸãã ãã®ããŒã¿æ§é ãžã®åãæ¿ã - ãããå éãããã®ã§ãã ãã®åŸãæã ã¯ãããã©ãŒãã³ã¹ãã¹ãã®çµæãèŠãŠãããŸãã ããªããæé©åããŒã¿æ§é ã«ããããäžã€ - æ¢åã®ã³ããŒã®åå©çšã
ããã€ãã®ã©ã€ã³ãç Žå£ãããå Žåãããäžæ¹ã¯ããªãããã£ãã·ã¥å ã®ãããã®è¡ããã£ãã·ã¥ãç·ãçŸãããšããã«ããŒã¿ãå€æŽããªãã§ãå埩 - ããªãã¯è«ççãªè³ªåãæå®ããããšãã§ããŸããïŒ ã ããæã ã¯ãããŸããã ç§ãã¡ã¯ãæåºã®å€ãã³ããŒã埩å ããããããããã¥ãŒãã£ãã·ã¥ãäœæããŸããã

ããªãã¯æ°ããããŒã«ã«è¡ãåã«ãç¶æ ãç Žå£ããå¿ èŠããããŸãã æ¡ä»¶ã¯ããã£ã¬ã¯ãã£ãã«å«ãŸããŠããŸãã æã ã¯ãã¹ãŠã®ãã£ã¬ã¯ãã£ãã殺ãããã«ããŸãã ããŒã«ããæãåºãæ¹æ³ãããå Žåã«ããã«ãããªãã¯ããããã®ãã£ã¬ã¯ãã£ããåäœæããå¿ èŠããããŸãã ãã®æ¹æ³ã§ã¯ãæ°Žåç©ãšè±æ°Žãè¡ããŸãã ã¢ãã«ã§ - ãã¹ãŠã¯ãã¢ãã«ãå šäœã®ç¶æ³ããæ¥ãŠããããDOMã¯ãæã ãä¿æããŠããããŒãã æã ã ãããšã¯ããããä¿ã¡ãŸããã ããã§ããããã©ãŒãã³ã¹ãã¹ããæã£ãŠããŸããã
ãã¹ãç°å¢
æåã®JavaScriptã³ãŒããšããŒãã³ãŒãã£ã³ã°ããããšããããã°ã©ã ã§ã - ããªãã¯ãããã®ãã¹ãã®çµæãç解ããããã«ãããŒã¹ã©ã€ã³ãããããšã«çæããããã§ãã ãã®ãããªããã°ã©ã ã¯ãä»»æã®ãã¬ãŒã ã¯ãŒã¯ã§äœ¿çšãããŠããªãã§ãããã°ã©ã ã¯ãã¡ããã©ãã®æ·±ãããªãŒãã¹ãã®ããã«æžãããŸããã ããã°ã©ã ã¯dirtyCheckingãçç£ããŠããŸãã ç§ãã¡ã¯ããã®ããã°ã©ã ãŠããããåŒãç¶ããŸããã ä»ã®ãã¹ãŠã®æ¯çã§æ¯èŒãããŸãã 1ã®è§åºŠã¯ã5.7ã®ããŒã¯ãåããŸããã

以åãæã ã¯ãæé©åãããããŒã¿æ§é ãšãããã¥ãŒãã£ãã·ã¥ãªãã§åãé床ã瀺ããŸããã ç§ãã¡ã¯ã2.7ã®ã¬ãã«ã«ãããŸããã ã ãããè¯ãææšã§ãã ç§ãã¡ã¯ãã«ããç¹æ§ãžã®å®¹æãªã¢ã¯ã»ã¹ã«äºåã®é床ãå¢å ããŠããŸãã æåã«æã ã¯ããã§æã ã®ä»äºãçµãããšæããŸããã
2段ç®ã®æ¬ ç¹
ç§ãã¡ã¯ãããã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãäœæããŸããã ãããããã®åŸãç§ãã¡ã¯æ¬ ç¹ãèŠãŸããïŒ
- äžè¯ã¡ã¢ãªãšViewCacheã®å人ã ã¯ãšãªåŠçã«ãŒããåãæ¿ããŠæ³åããŠã¿ãŠãã ããã ãããããã£ãã·ã¥ãããã®ã§ãããªãã®å€ã質åã¯ãã¡ã¢ãªå
ã«æ®ãããšã¯ãªãã§ããïŒ ãã£ãã·ã¥ããã¯ãšãªãåé€ããéã®è³ªåã¯ãããŸããïŒ å®éã«ã¯ãããã¯éåžžã«é£ãã質åã§ãã ããªãã¯ããŠãŒã¶ãŒããã£ãã·ã¥äœããããã©ãããéžæã§ããããã«ãªãããã€ãã®ç°¡åãªèŠçŽ ããäœæããããšãã§ããŸãã ããããããã¯ãå°ãªããšãå¥åŠã ããã
- ããäžã€ã®åé¡ïŒDOMèŠçŽ ãé ãããç¶æ ãæã£ãŠããŸãã äŸãã°ãèŠçŽ ã¯ãçŠç¹ã«é 眮ãããŸãã ããªããçŠç¹ã«çµåããããªãå Žåã§ãé ç®ãçŠç¹ã«ããããããããããåé€ãããããŸãã¯ãªã¿ãŒã³ããã®ãŸãã¯ä»ã®èŠçŽ ã®ãã©ãŒã«ã¹ãå€æŽããããšãäž¡æ¹ã«ããããšãã§ããŸãã ããã«ã€ããŠãç§ãã¡ã¯èããŠããŸããã§ããã é¢é£ã®ãã°ããããŸããã ããªãã¯ãã®éãè¡ãããšãã§ããŸãïŒæã ã¯å®å šã«åœŒãã®æ¡ä»¶ãåé€ããé ç®ãåé€ããããã«ããããéã«ããããšãã§ããŸãã ç§ãã¡ã¯DOMãåäœæããªããã°ãªããªãå Žåããããããã¯ãViewCacheææšãåŠå®ããã§ãããã ãã¹ãŠã®åŸãæã ã¯2.7ã®çã瀺ããŸããã æã ã¯ããã®ãããªAã®ç¶æ³ã§ã®é床ã«éããŠããããã«ïŒ
第äžæ®µé
ã¯ã©ã¹ãã¥ãŒ
次ã«èããã®ã¯ãç§ãã¡ã«èµ·ãã£ãïŒç§ãã¡ã¯ç§ãã¡ã®ã¯ã©ã¹ãã¥ãŒã§åã³èŠãŠã¿ãŸãããã ç§ãã¡ã¯äœããããŸããïŒ
ãããã¯ããã§ã«æš©å©ãngelementãæé©åããŠãã - ç§ãã¡ã¯ãã³ã³ããŒãã³ããæã£ãŠããŸããïŒ ç§ãã¡ã¯ãçµåããŠããŸãã ããããã¯ã©ã¹ãã¥ãŒã¯ããŸã ãããã®é åãå«ãŸããŠããŸãã æã ã¯ãŸããããããã£ã®ã¿ã䜿çšããŠããŸãInlineViewãäœæã§ããŸããïŒ ãããé åãããŸããã ããã¯å¯èœã§ããïŒ ããã¯ãããå€æããŸããã
ã©ã®ããã«èŠããŸããïŒ çŽããã

æš¡æ§
ããã§ãæã ã¯ã以åã®ããã«ããã³ãã¬ãŒãã«ãªãããã¹ãŠã®èŠçŽ ã®ããã«ãç§ãã¡ã¯ãã ãæžã蟌ã¿ã³ãŒãã¯ãã ãã®ãã¿ãŒã³ã®ããã«ãç§ãã¡ã¯ç§ãã¡ã®ã¯ã©ã¹ã®ãã¥ãŒã衚瀺ããã³ãŒããäœæããŸããåèŠçŽ ã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§ãdocument.createElementãåŒã³åºããŸãããã®èŠçŽ ã¯Node0ããããã£ã«æ ŒçŽãããŸããæåã®èŠçŽ ã§ã¯ã2çªç®ã®èŠçŽ ã§ã¯ãåã³node1ã«æ ŒçŽãããdocument.createElementãåŒã³åºããŸããããã«ãèŠçŽ ã芪ã«ã¢ã¿ããããå¿ èŠãããå Žåãããããã£ããããŸããïŒæ£ããé åºã§ãã¹ãŠãè¡ãå¿ èŠããããŸãããã®ããããã£ã䜿çšããŠã以åã®ç¶æ ãåç §ã§ããŸããããããDOMã§è¡ãããšã§ãã

ãã£ã¬ã¯ãã£ããã£ã¬ã¯ãã£ã
ã«ã€ããŠãåæ§ã§ããåã€ã³ã¹ã¿ã³ã¹ã®ããããã£ããããŸããç¹°ãè¿ãã«ãªããŸãããã¢ã¯ã·ã§ã³ã®é åºãæ£ããããšã確èªããå¿ èŠããããŸããäŸåé¢ä¿ãæåã«æ¥ãŠããããããã®äŸåé¢ä¿ã䜿çšããã³ã³ããŒãã³ãã§ãããŸãngFormã䜿çšãã次ã«ngModelã䜿çšããŸãã
ãã€ã³ãã£ã³ã°
次ã«ããã€ã³ãã£ã³ã°ãããŒãã£ãã§ãã¯ãè¡ãã³ãŒããäœæããã ãã§ããåŒãååŸããJavaScriptã«å€æããŸãããã®å Žåãthis.component user.nameã«ãªããŸããããã¯ãã³ã³ããŒãã³ãããuser.nameãååŸãããããããããã£ã§ããã以åã®å€ãšæ¯èŒããããšãæå³ããŸããå€ãå€æŽãããå Žåãããã¹ãããŒããæŽæ°ããŸããæåŸã«ããã¹ãŠãããŒã¿æ§é ã®è¡šçŸã«çž®å°ããŸããããããã£ã®ã¿ããããŸããããããã£ãä»ããã¯ã€ãã¯ã¢ã¯ã»ã¹ã䜿çšããããã¹ãŠã®å Žæã«ãMapãšããé åã¯ãããŸããã
ããã«ãããããã»ã¹ãå€§å¹ ã«é«éåãããŸããããã«ãããèŠãããšãã§ããããã«æ°åã衚瀺ããŸãã
åé¡ã¯ããããã©ã®ããã«è¡ããã§ãã
誰ãããã®æ°ããã¯ã©ã¹ãè©äŸ¡ããæååãäœæããå¿ èŠããããšããŸããããããã¯ã©ã®ããã«è¡ãããŸããïŒçŸåšã®å®è£ ã§ã¯ãå®è£ 101ã§è¡ã£ãããšããã®ãŸãŸé©çšããŸãã
äžçªäžã®è¡ã¯æ¬¡ã®ãšããã§ãã以åã«DOMããŒããäœæããå ŽåãDOMããŒããäœæããã³ãŒããäœæããŠããŸããèŠçŽ ãæ¯èŒããããã«äœ¿çšããå ŽåãèŠçŽ ãæ¯èŒããã³ãŒããäœæããŠããŸããæåŸã«ããã£ã¬ã¯ãã£ãã€ã³ã¹ã¿ã³ã¹ãŸãã¯DOMããŒããåç §ããŠããå Žåããã£ã¬ã¯ãã£ãã€ã³ã¹ã¿ã³ã¹ãšDOMããŒããä¿åãããŠããå Žæã«ããããã£ãä¿åããŸãããã®å Žåãã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã

以åã¯ngelementããããŸããããcompileElementãã§ããŸãããå®éããããã®ã¯ã©ã¹ã¯çŸåšã³ã³ãã€ã©ã«ååšããŠããŸãã compileElementãcompileViewãªã©ããããŸãã
衚瀺ã¯æ¬¡ã®ããã«ãªããŸããDOMèŠçŽ ãååŸããåã¯ãDOMèŠçŽ ãæ ŒçŽãããŠããããããã£ãããããŸããã以åã¯document.createElementãåŒã³åºããŠããŸãããããã®æ°ããæååè£éã䜿çšããŠè¡ãäœæããŠããŸããããã¯ãthis.document +ãã®ããããã£åãADDãšããååã®document.createElementãšçãããšããã³ãŒããäœæããã®ã«æé©ã§ãã
æåŸã«ã以åã«appendChildãåŒã³åºããå Žåãåã芪ã«ã¢ã¿ããããã³ãŒããäœæããŠããŸãããã£ã¬ã¯ãã£ãã®äŸåé¢ä¿ã®æ€çŽ¢ã§ãåãããšãèµ·ãããŸãããã¹ãŠãåãã¢ã«ãŽãªãºã ã«åŸã£ãŠè¡ãããŸãããçŸåšã¯ãããã®ç®çã®ããã«ã®ã¿ã³ãŒããäœæããŠããŸãã

ã€ã³ãžã±ãŒã¿ãŒãèŠããšãé床ãå€§å¹ ã«åäžããŠããããšãããããŸãã以åã®ã€ã³ãžã±ãŒã¿ãŒã2.7ã ã£ãå Žåã1.5ã«ãªããŸãããã»ãŒ2åã®é床ã§ããããã§ããViewCacheã¯å°ãé«éã®ãŸãŸã§ããããããç§ãã¡ã¯ããã䜿çšãããªãã·ã§ã³ãæé€ããããªãã¯ãã§ã«ç§ãã¡ã®æ±ºå®ã®çç±ãç¥ã£ãŠããŸããç§ãã¡ã¯çŽ æŽãããä»äºããããã§ã«çµãã£ãŠãããããããŸããããããããããŸããã
åçïŒãžã£ã¹ãã€ã³ã¿ã€ã ïŒã³ã³ãã€ã«
ããã§ã¯ãæåã«åçïŒãžã£ã¹ãã€ã³ã¿ã€ã ïŒã³ã³ãã€ã«ã«ã€ããŠèª¬æããŸãããåç-ããã¯ããã©ãŠã¶ãŒã§ã³ã³ãã€ã«ããããšãæå³ããŸãã

ããã¯æ¬¡ã®ããã«æ©èœããããšãæãåºããŠãã ããããµãŒããŒäžã«åä¿¡ããŒã¿ããããŸãããã©ãŠã¶ã¯ããããããŒãããŠéžæãããã¹ãŠãåæããŠãå ã®ãã¥ãŒã¯ã©ã¹ãäœæããŸãã次ã«ãå¥ã®ã¯ã©ã¹ãååŸããããã«ãã®ãœãŒã¹ã³ãŒããè©äŸ¡ããå¿ èŠããããŸãããã®åŸããã®ã¯ã©ã¹ãäœæããåäœããã¢ããªã±ãŒã·ã§ã³ãååŸã§ããŸãããã®éšåã«ã¯ç¹å®ã®åé¡ããããŸãã
- , . - , , . . , . , . .
- â , , Angular . , , .
- â eval. eval , - - . eval, , .
(, â eval )
- , (, ). , , . , Angular . ããã¯ããŸãè¯ããããŸããã
- , , . ( , , ), - , :
- -, , , , .
- -, . , , . Closure ( « »), Google .
ãã®ãããã³ã³ãã€ã©ã®å®è¡äžã«æ¹åãããçž®å°ã䜿çšãããšããããèµ·ãããŸãã
ããŒã¯ã¢ããã®ã³ã³ããŒãã³ãããã©ãŠã¶ã«èªã¿èŸŒãŸãããã©ãŠã¶ããã³ãã¬ãŒãã解æããŠãã¥ãŒã¯ã©ã¹ãäœæããŸãããããŸã§ã®ãšããããã¹ãŠãé 調ã«é²ãã§ããŸãããã©ãŠã¶ã¯user.nameã䜿çšããã³ã³ããŒãã³ãã«ã¯user.nameãå«ãŸããŸãããã®user.nameã®ã¿ãé«åºŠãªçž®å°æè¡ã䜿çšããŠçž®å°ãããŸãããããã£ãŠãã³ã³ããŒãã³ãã¯C1ãªã©ãšåŒã°ãããŠãŒã¶ãŒã¯çªç¶Uã«ãªããååã¯Nã«ãªããŸããåé¡ã¯ããããã¡ã€ã€ããã³ãã¬ãŒããèªèããŠããªãããšã§ããå®éãuser.nameã¯ãŸã ãã³ãã¬ãŒãã«ãããŸãã
ãã®ããããã³ãã¬ãŒããå®è¡ãããuser.nameãäœæãããŸãããããã¯ã³ã³ããŒãã³ãã«ã¯ååšããŸããããã®åé¡ã«ã¯ç¹å®ã®è§£æ±ºçããããŸãããã®ããããã£ãçž®å°ããå¿ èŠããªãããšãã³ã³ããŒãã³ãã«äŒããããšãã§ããŸããããããããã¯ç§ãã¡ãå¿ èŠãšãããã®ã§ã¯ãããŸããããã®ããããã£ãçž®å°ã§ããå¿ èŠããããŸãããããã¯ãªã³ã©ã€ã³ã§ã®ã³ã³ãã€ã«ããã³è©äŸ¡ã§ã¯æ©èœããŸããã
éçïŒå è¡ïŒã³ã³ãã€ã«
ãã®çç±ããã次ã®ã¹ãããã¯éçïŒå è¡ïŒã³ã³ãã€ã«ã®åºçŸã§ããã圌女ã¯æ¬¡ã®ããã«åããŠããŸãã

ãã®å ŽåãããµãŒããŒã§è§£æãããå ¥åãããããã¥ãŒã¯ã©ã¹ããµãŒããŒã§äœæãããŸãã
次ã«ããã©ãŠã¶ã¯ããããååŸããéåžžã®ã¹ã¯ãªããããã¹ãã®ããã«ïŒéåžžã®JavaScriptã³ãŒããããŒãããããã«ïŒããŒãããå¿ èŠãªèŠçŽ ãäœæããŸãã
ãã®ã³ã³ãã€ã«æ¹æ³ã¯çŽ æŽãããã§ãããªããªããåæã¯ãµãŒããŒäžã§è¡ããïŒãããã£ãŠãè¿ éã«è¡ãããïŒãã³ã³ãã€ã©ãŒããã©ãŠã¶ãŒã«è»¢éããå¿ èŠããªãããã§ãïŒãããçŽ æŽãããããšã§ãïŒããŸããããã¯ã¹ã¯ãªããã§ãããããè©äŸ¡ã䜿çšããªããªããŸããããããã£ãŠããã®ãããªã³ã³ãã€ã«ã¯ã©ã®ãã©ãŠã¶ãŒã«ãé©ããŠããŸãã
ãŸããéçãªã³ã³ãã€ã«ã¯ããµãŒããŒäžã«ãã¥ãŒã¯ã©ã¹ãäœæãããããã¡ã€ã€ãå®è¡ãããšããã¥ãŒã¯ã©ã¹ããããã¡ã€ã§ããããããããã¡ã€ã®æ¹åã«æé©ã§ãããããã¡ã€ã€ãä»äºãçµããã®ã§ãã¯ã©ã¹ã®ååãå€æŽãããããããã£ãååŸããŸãã
çŽ æŽããããä»æ¹åãããçž®å°ã䜿çšã§ããŸãããããã£ãŠãé床ã€ã³ãžã±ãŒã¿ã¯ããã«äœäžããŠããŸãã
éçã³ã³ãã€ã«ã®æ¬ ç¹ãããã£ãŠãéçã³ã³ãã€ã«ãã§ããŸãã
ãããã§ãã¹ãŠããŸããããŸããããïŒãããããã€ãã®ããã«ãæ¬ ç¹ããããŸããæåã®åé¡ã¯ãéçã³ã³ãã€ã«ã䜿çšããŠå¥ã®ã³ãŒããäœæããå¿ èŠãããããšã§ãã
ãã©ãŠã¶ãŒã§è©äŸ¡ããã«ã¯ãES5æšæºã«åŸã£ãŠã³ãŒããäœæããå¿ èŠããããŸããããŒã«ã«å€æ°ã䜿çšããã³ãŒãããŸãã¯é¢æ°ã«æž¡ãããåŒæ°ãåãåãã³ãŒããäœæããŠããŸããrequire.jsãªã©ã䜿çšããŠããŸããã
ã³ãŒãã¯ãµãŒããŒã§çæãããããã次ã®2ã€ã®çç±ã§TypeScriptã³ãŒããçæããå¿ èŠããããŸããã
- æåã«ãåŒã®ã¿ã€ãïŒã³ã³ããŒãã³ãã«ååšãããã©ããïŒã確èªãããã£ãã
- -, TypeScript. , , . â , require.js, system.js, Google Closure, .
- , ES6 2016.

ES6 2016ã®ãµããŒããã©ã®ããã«æäŸããŸãããïŒ
å®éãã³ã³ãã€ã©ãŒã«ç²ŸéããŠããå Žåãå ±éã®ãã¿ãŒã³ããããŸããæååãäœæãã代ããã«ãåºåã«äŒŒãããŒã¿æ§é ãäœæãããŸããããã®ããŒã¿æ§é ïŒãã®ADDïŒã¯ç°ãªãåºåããŒã¿ã«ã·ãªã¢ã«åã§ããŸãã
ASDã«ã¯ãå€æ°å®£èšãã¡ãœããåŒã³åºããªã©ã®æ©èœã«å ããŠãã¿ã€ããå«ãŸããŠããŸãã次ã«ãES5ã®å Žåã¯åãªãã§ãã¹ãŠã·ãªã¢ã«åããTypeScriptã®å Žåã¯åã§ã·ãªã¢ã«åããŸãã
次ã®ããã«ãªããŸãïŒå®£èšãããå€æ°å ã§çæãããASDåºåïŒdeclare var name ELãæå®ããŸãïŒãããã«ãããTypeScriptã§å€æ°ã³ãŒããäœæãããã¿ã€ããäœæãããŸãã ES5ã§ã¯ãã¿ã€ãã¯çç¥ãããŸãã
次ã«ãã¡ãœãããåŒã³åºãããšãã§ããŸãããŸããããã¥ã¡ã³ãå€æ°ãèªã¿åããŸãïŒã°ããŒãã«å€æ°ã§ããããïŒããããŠã圌女ã®ããã«ããããã®åŒæ°ã§createElementã¡ãœãããåŒã³åºãããšãã§ããŸãã
æååã解æããå Žåã¯ãæååãæ£ãããšã¹ã±ãŒãããå¿ èŠãããããããªãã©ã«ãå€ãdivãã§é 眮ããŸãããå€ã«ã¯åŒçšç¬Šãå«ãŸããŠããå¯èœæ§ããããããã³ãŒããèªã¿åããšãã«ãšã¹ã±ãŒãããå¿ èŠãããå Žåã¯ã¹ãããããŠãã ããããããã£ãŠããã®æ¹æ³ã§ãããè¡ãããšãã§ããŸããè¯ããã¥ãŒã¹ã¯ãçæãããã³ãŒãããµãŒããŒãšãã©ãŠã¶ãŒã®äž¡æ¹ã§åãããã«èŠããããšã§ããç°ãªãã³ãŒãã¯ãããŸããã
éçã³ã³ãã€ã©ã®éçºäžã«çºçãã2çªç®ã®åé¡ã¯ãã¡ã¿ããŒã¿ã®å²ãåœãŠã§ãããã®ã³ãŒããèŠãŠãã ããã

ãã®ã³ãŒãã®åé¡ã¯äœã§ããïŒCookieã«äŸåããããçš®ã®ãã£ã¬ã¯ãã£ãããããCookieãããå Žåããã£ã¬ã¯ãã£ãã¯å¥ã®ããšããããšããŸããåäœããŸããã³ã³ãã€ã«ã§ããŸããçŽ æŽãããã
ããããããã¯éçã³ã³ãã€ã«ã§ã¯æ©èœããŸãããããªããããã«ã€ããŠèãããªãããªãã§ããïŒããããã¹ãŠãES5ã®ã¬ãã«ã«äžãããšããŸãã«ãã®ãããªã³ãŒããåŸãããŸãã
ãã³ã¬ãŒã¿ã¯æçµçã«äœãããŸããïŒã¡ã¿ããŒã¿ã®ã³ã³ã¹ãã©ã¯ã¿ã«ããããã£ãè¿œå ããŸããæåŸã«ã圌ã¯åã«SomeDirã«ã¡ã¢ãè¿œå ããŸãã
åé¡ã¯ããµãŒããŒã§ãããå®è¡ãããšæ©èœããªãããšã§ããçµå±ã®ãšããããµãŒããŒäžã«ããã¥ã¡ã³ãã¯ãããŸãããã©ãããïŒ
ãµãŒããŒäžã«ãã©ãŠã¶ç°å¢ãæ§ç¯ããããã¥ã¡ã³ãå€æ°ããŠã£ã³ããŠå€æ°ãªã©ã宣èšããããšãææ¡ã§ããŸããããã¯æ©èœããå ŽåããããŸãããã»ãšãã©ã®å Žåæ©èœããŸããã 2çªç®ã®æ¹æ³ïŒçŸåšãASDã«ç²ŸéããŠããŸããïŒïŒASDãåŠçããã³ãŒããè©äŸ¡ããã«ASDããã¡ã¿ããŒã¿ãåé€ããŸãã ASDã§ã¯ãäœããã®åœ¢ã§è¡šçŸã§ããŸãã

ãããã£ãŠãADD SomeDirã¯ã©ã¹ã«ã¯ãåŒã³åºãèŠçŽ ãåç §ããdecoratorsããããã£ããããŸãïŒããã¯ããã£ã¬ã¯ãã£ããšåŒæ°ãå®çŸ©ãããŠããåŒã§ãïŒã次ã®ããšãèµ·ãããŸããã¡ã¿ããŒã¿ãJSONãã¡ã€ã«ã«åã蟌ã¿ãéçã³ã³ãã€ã©ãŒããããã®ãã¡ã€ã«ãååŸããŠãããããããã³ãã¬ãŒããäœæããŸããæããã«ãå¶éããããŸãã JavaScriptã³ãŒããçŽæ¥è©äŸ¡ããããšã¯ãããŸããã®ã§ããã©ãŠã¶ã§æ £ããŠããããšããã¹ãŠè¡ãããšã¯ã§ããŸããã
ãã®ãããç§ãã¡ã®éçã³ã³ãã€ã©ã¯ç§ãã¡ãå¶éããŸãããããªãã¯ã¡ã¢ã眮ãããšãã§ããŸãããã ããäžèšã®æ¹æ³ã䜿çšããå Žåãããã¯ãã¹ãŠã®å Žåã«æ©èœããŸãã
ããŠãããäžåºŠããã©ãŒãã³ã¹ãã¹ãã«ã€ããŠèª¬æããŸãããã

ããã¯ç§ãã¡ãæžããç°¡åãªããã°ã©ã ã§ãããŸããèªã¿èŸŒã¿æéãå€§å¹ ã«ççž®ãããŸãããããã¯ãåæãè¡ããªããªã£ãããã§ãããAngular 2ã³ã³ãã€ã©ãããŒããããªããªã£ãããã§ããã»ãŒ3åé«éã§ãããµã€ãºã¯ããã§ã«gzip圢åŒã§çž®å°ããã144ãããã€ããã49ã«çž®å°ãããŸãããæ¯èŒã®ããã«ãçž®å°ãæ¹åãããReactã©ã€ãã©ãªã®ééã¯46 kbã«ãªããŸããã
次ã«ãããã€ãã®å®äŸã瀺ããŸã
ãAngularã³ã³ããŒãã³ãããããšããŸããngFormãšngModelããããŸãã ngModelã«ã¯ãäŸåé¢ä¿ãšããŠngFormããããŸãã

ããã«NGCãè¿œå ããŸã-ã¡ã¿ããŒã¿ãåŒãåºããŠãµããŒããããšãããããã®ã¢ãžã¥ãŒã«ã¯TypeScriptã«äŸåããããããããã¯TypeScriptã³ã³ãã€ã©ã«ãŸããã_nodeã¢ãžã¥ãŒã«ã§ããçæãããã³ãŒããèŠããšãéåžžã«éŠŽæã¿ãããããšãããããŸãã user.nameããããŸããå€ãå€æŽãããå Žåããã£ã¬ã¯ãã£ãå ¥åãæŽæ°ããŸããåã®å€ãšæ¯èŒããŠèšå®ããã ãã§ãã
ããã«ã¯è¯ãé¢ããããŸãããã³ãã¬ãŒãã§user.nameãwrongNameã«å€æŽãããšããŸãããã³ãã¬ãŒãã¯ããŠãŒã¶ãŒã§ã¯ãªãuser.nameãåç §ããŸãã wrongNameãçæãããã³ãŒããèŠããšãTypeScriptã¯ãšã©ãŒãã¹ããŒããŸãã

ãããã®è¡šçŸã«ã¯ã³ã³ããŒãã³ãã®ã¿ã€ãã«åºã¥ããã¿ã€ããããããã§ãããããŠä»ãããããã³ã³ãã€ã«ãããšãTypeScriptã䜿çšãããšããçç±ã ãã§ãã³ãŒãã«ãšã©ãŒãèŠã€ãããŸããä»ã«äœãå¿ èŠãããŸããã§ããã
ããŸããããŸããããããã«è¯ããªãããåªåããŠããŸãã
ç§ãã¡ã®ç®æšã¯ã10 kb gzipã®ãµã€ãºãéæããããšã§ãããããã¿ã€ãã®äžéšã®ãµã€ãºã¯25 kbã§ãããã³ã³ãã€ã©ãŒãããã«å°ããããæ¹æ³ã«ã€ããŠããã€ãã®ã¢ã€ãã¢ããããŸãã次ã«ãããŒã¹ã©ã€ã³ã®éå§ç¹ãããããã«éããªãããã§ããããã¯å¶éã§ã¯ãªãããšãèªèããŠãããããŒã¹ã©ã€ã³ãããããã«éããªãå¯èœæ§ããããŸãã
å€æŽã¯ãããŸãããå€æŽãè¡ããç°ãªãã³ãŒããçæããŸããå¯äžã®ããš-é床ã®éãã®ã¿ã衚瀺ãããŸãã
çµè«ãšããŠ
ããã©ãŒãã³ã¹ãããã©ãŒãã³ã¹ã®ããŸããŸãªåŽé¢ã«ã€ããŠè©±ããŸããã
å ¥åã«ã€ããŠèª¬æããŸããã
åæãšã¯äœããASDïŒASTïŒãåŠã³ãŸããããã³ãã¬ãŒãã衚瀺ããæ¹æ³ãšå®è£ æ¹æ³ã«ã€ããŠèª¬æããŸããã
document.createElementã¯ãAngularãã¬ãŒã ã¯ãŒã¯ã«æé©ã§ããããšãåŠã³ãŸããã
ããããã£ãšé衚瀺ã¯ã©ã¹ã«ããè¿ éãªã¢ã¯ã»ã¹ã¯ãã³ãŒããæé©åããããã®åªããããŒã«ã§ããããšãåŠã³ãŸããã
ã³ãŒãçæïŒè©äŸ¡ãæ£ããè¡ãããå Žåãã€ãŸããè©äŸ¡ã®å©ãã ãã§ãªãããªãã©ã€ã³ãµããŒããASDã®æŽŸçãïŒãçŽ æŽããã匷åãªãã®ã§ããããšãåŠã³ãŸãããããã¯ãé ãã¯ã©ã¹ãçæããã®ã«åœ¹ç«ã¡ãŸãã
éçïŒAhead Of TimeïŒããã³åçïŒJust In TimeïŒã³ã³ãã€ã«ãããã³æé©åã§ãããã®ã«ã€ããŠèª¬æããŸããã
ãããŠæåŸã«ãè¯ãäŸãèŠãŠã¿ãŸãããã¹ã©ã€ãã«ç§ã®ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ããããŸãã
ãæž èŽããããšãããããŸããã
çŽ æãªã³ã¯