ã¯ããã«â
“ã¢ãã³”ãªJavaScriptãšèšããšã”React”ã”Vue”, “Angular”ãªã©ãæãæµ®ãã¹ãæ¹ãå€ããšæããŸããããããã¢ãã³ãªæœ®æµã«éãããã®ããã«ãæ¬èšäºã§ã¯jQueryãããŒãã«åãäžããŸãã
â»åŒç€Ÿã§ã¯ãWordPressãªã©ã®ãããã¯ãã§jQueryãå©çšããŠããŸãããåºæ¬çã«æ°èŠéçºã§ã¯React + TypeScriptã§éçºãããŠãããVueã䜿çšãããŠãããããã¯ãããããŸãïŒ
ç§ã¯ããã³ããšã³ãããŒã æå±ã®æ°åäžå¹Žç®ã§ããjQueryã«ã¯åèŠãæã£ãŠããŸããïŒä»ã§ãå°ãã¯ãããŸãâŠïŒãç¹ã«æ·±ãçç±ããã£ãããã§ã¯ãªããèšäºãæ å ±ã«åœ±é¿ãããæ¢åã®ã³ãŒãã§ã$ããç®ã«å ¥ããšãéåæãèŠããŸãããïŒã$ãã¯jQueryã§äœ¿ãããèšæ³ã§ãïŒ
ãŸããæ åœããŠãããããžã§ã¯ãã®READMEã«ãã§ããéãjQueryã¯äœ¿ããªãããšèšèŒããããšããåŸã«èªåãèŠãããããšã«ãªããŸããâŠã
jQueryãšã¯ð§
ããããããªãJavaScriptã®ã©ã€ãã©ãªã§ãããŸããŠãJavaScriptããã容æã«èšè¿°ã§ããããã«èšèšãããã©ã€ãã©ãª1ã ããã§ãã(2006幎ã«ãªãªãŒã¹ããããšã®ããšã§ã20幎匱ã»ã©çµã£ãä»ã§ãå€ãã®Webãµã€ãã§çšããããŠããã®ã¯é©ãã§ãïŒ
ã¡ãªã¿ã«ãWordPressã«ã¯ããã©ã«ãã§jQueryãçµã¿èŸŒãŸããŠããããã§ããäžçäžã®ãµã€ãã®2ã€ã«1ã€ã¯WordPressã§æ§ç¯ãããŠãããªããŠããã®ãèããŸãããWebãµã€ãã«ã¯jQueryã®ååšãäžå¯æ¬ ãšãã£ãŠãéèšã§ã¯ãªãããã§ãã
Vanilla JS2ãšã¯ðŠ
çŽ ã®JavaScriptã®ããšã§ããæããã¯ãã©ãŠã¶ã«çšæãããAPIã®ã¿ã§æžããJSã®ããšã ãšæããŸãã
ã©ã€ãã©ãªãèªã¿èŸŒãã ãããå¿ èŠããªãã®ã§ãïŒåœããåã§ããïŒè»œéã§ãïŒ
Vanilla JS ã®åŒ±ç¹ð¥²
äžäººã§åæã«Vanilla JSçžããããŠããç§ã§ãããæžããŠããéã«ããããšã«æ°ãä»ããŸãã
ãèªã¿ã¥ãããåããã¥ããã
Vanilla JSãçšããéçºã§å€§ããªããã¯ãšãªãã®ããæããåããã¥ããã ãšå人çã«ã¯æããŸããèªåã®æžããã³ãŒããåŸããèªããªããªãçŸè±¡ããç¹ã«ãã®Vanilla JSã§å€ãããã«æããŸãã
Reactããã®ä»ã©ã€ãã©ãªã¯ããžãã¯ãšUIãåé¢ãããŠéçºã§ããããšãå€ããVanilla JSãšæ¯èŒãããšãšãŠããããããããšæããŸãã
ãŸããVanilla JSã¯äžèšã®ç¹ã«å ããŠãå·¥æ°ãããããšæããŸã…
å®éã«ããã¿ã³ãæŒããããã®äžã«ããèŠçŽ ã衚瀺ã»é衚瀺ããããšããå®è£ ã®å Žåã以äžã®ããã«ãªããŸãã
æ¡ä»¶ãåå²ããŠããŸãããã¯ã©ã¹åãä»äžãããããªãã®ãããªtoggleã¡ãœãããçšãããããå°ãç°¡çŽ ã«æžããŸãã
// ãã¿ã³èŠçŽ ãå
šãŠååŸ(querySelectorã ãšæåã®äžã€ããåããŠããªã)
const buttons = document.querySelectorAll(".button");
// åããŠããèŠçŽ å
šãŠã«å¯ŸããŠã€ãã³ããªã¹ããŒã远å ããåŠç
buttons.forEach((button) => {
button.addEventListener("click", () => {
const fruit = button.nextElementSibling;
const fruitStyle = fruit.style.display;
fruitStyle = fruitStyle === "none" || "" ? "block" : "none";
});
});ãã®ããã«Vanilla JSã®ã¿ã§æžããšå°ã è€éã«ãªããŸãããã®çšåºŠã®èšè¿°ã§ããšåé¡ãªãã§ãããä»ã®DOMæäœãå ãã£ããããã°1ã€ã®ãã¡ã€ã«ã§ããªãç ©éãªã³ãŒããã§ãããããŸãïŒâ»JSDoc3ãªã©ã掻çšããã°ããçšåºŠã¯æŽçã§ãããšæããŸãïŒ
ãããŠããããšå šãåãã§ã¯ãªãã§ããã»ãšãã©åããã®ãjQueryã§èšè¿°ãããšä»¥äžã®ããã«ãªããŸãã
$(".button").on("click", function () {
$(this).next(".fruits").slideToggle();
});ããªããã£ããããŸãã
Vanilla JSã§ã¯æäœãããå šãŠã®DOMèŠçŽ ãäžæŠååŸããŠãå šãŠã®èŠçŽ äžã€ãã€ã«foreachãªã©ã®ç¹°ãè¿ãåŠçã§….ãšæžãå¿ èŠããããŸãããjQueryã§ã¯äžèšã®ã³ãŒãã§(documentã®)å šãŠã®buttonã¯ã©ã¹ãæã£ãèŠçŽ ã«å¯ŸããŠåŠçã远å ããããšãã§ããŸãã
ãã®ãããªéãããããŸãã
ãŸããå®éã®åãã«ãå€å°éãããããŸããŠãå ã»ã©ã®Vanilla JSã®ã³ãŒãã¯ãã®ããã«ãªããŸãã

è¥å¹²ã«ã¯ã«ã¯ããŠããã®ãããããŸãã§ããããã
ãã¡ãããdisplayããããã£ã§ã¯ãªããŠãopacityãmax-heightãªã©ã掻çšããŠã¢ãã¡ãŒã·ã§ã³ãã¹ã ãŒãºã«ããããšãã§ããŸããããããVanilla JSçžãã®ç§ãèŠãããŠãã倧ããªåå ã®äžã€ã§ããããŸãã
ã¹ã ãŒãºãªã¢ãã¡ãŒã·ã§ã³ãå®è£ ããéã«CSSãVanilla JSã®ã¿ã§ããããšãããšæå€ãšè€éãªèšè¿°ã«ãªã£ãŠããŸããèªåã§ãæçµçã«ã©ã®ããã«ããŠãã®ã¢ãã¡ãŒã·ã§ã³ãåããŠããã®ãããããªããªã£ãŠããŸãããšãã£ãããšã«é¥ã£ãŠããŸããŸããã
jQueryã¯ããã»ã©ã®çãèšè¿°ã ãã§CSSããããããšãªã以äžã®ããã«ãªããŸãã

ãã®ããã«jQueryãçšãããšç°¡åã«ãªãã(?)ãªã¢ãã¡ãŒã·ã§ã³ã衚çŸããããšãã§ããŸãã
éçºè ããŒã«ã§ç¢ºèªãããšå¯Ÿè±¡ã®èŠçŽ ã®display:block;, noneãåãæ¿ãã£ãŠããã®ã§ããããã®åã«å éšã§ã¹ã ãŒãºã«ãªãããã«è²ã åããŠããããã§ãïŒå€åïŒãâ»displayããããã£ã¯CSSã®transitionãå¹ããªãããã§ãã
æåð
ããæå³èªèº«ã®å®è£ åã®ãªãã§ã諊ããŠjQueryã«æãã®ãŒããæµãã«ã¯ãªã£ãŠããŸããŸããããçµæçã«ã¯ã©ã€ãã©ãªã䜿çšãããã©ããã«ã€ããŠèªèº«ã®äžã§åå³ããããšãã§ããå·¥æ°ãå¯èªæ§ãæèããéçºã®ãã£ããã«ãªã£ãã®ã§ã¯ãªãããšæããŠããŸãã
Vanilla JSã§æžããšããã©ãŒãã³ã¹ã¯æå€§åãããå¯èœæ§ããããŸãããåŸã®ä¿å®ã»éçšã«ãããŠãèªãã®ã«èŠåŽããäœèšãªå·¥æ°ãããã£ãŠããŸãå ŽåããããšèããŸãã
çµè«ð
å¶äœãããã®ã«ãjQueryãå¿ é ã§ãªãã®ãªãå°å ¥ããå¿ èŠã¯ãªããšæããŸãããã ããå€ãã®Webãµã€ãã§ã¯ãŸã jQueryãçšããŠãããã®ãå€ãããããVanilla JSãReact, Vueãªã©ã§çœ®ãæããã®ã¯å°é£ãªå ŽåãããããšæããŸãã
ã¡ãªã¿ã«Reactã®å ¬åŒããã¥ã¡ã³ãã®ãã³ããŒã¬ãŒã¡ãã¥ãŒééã«ã¯ã¢ãã¡ãŒã·ã§ã³ããªãã£ãã§ãã

åæãªèå¯ã§ããããã¯ãReactã®ã¿ã§åŸæ¥ã®Webãµã€ãã®ãããªã¹ã ãŒãºãªåãã®ã¢ãã¡ãŒã·ã§ã³å®è£ ãé£ããå Žåãããã®ã§ã¯ãªãããšæããŸãïŒããããã¢ãã¡ãŒã·ã§ã³ãäžèŠãšå€æããŠããå¯èœæ§ããããŸãã…ïŒ
ä»åŸã«ã€ããŠð
ä»åŸã¯ãã§ããéãã©ã€ãã©ãªã䜿ããªãæ¹åã§é²ããŠãããŸãããå·¥æ°ãèŠç©ãã£ãçµæãVanilla JSã§ã¯å³ããããããã¯è€éåããããªå Žåã«ã¯ãä»ã®ã©ã€ãã©ãªãæ¹æ³ãæ€èšãå·¥æ°ãççž®ããŠäœåãªã³ã¹ããåæžã§ããããã«ããŠãããããšæããŸãã
â»ReactãVueã®ãããã¯ãã§ã¯ãã¡ãããã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã«åã£ãŠæžããŠãããŸãâð»
åŒãç¶ããJavaScriptã®å®è£ åãé«ãããšãšãã«ReactãVue, TypeScriptãªã©ãåŠç¿ãäŒç€ŸãããŒã ã«è²¢ç®ã§ãããã粟é²ããŠãŸãããŸãð