ãJavaScriptãï¼å¤§ãã¬ã¼ã ã¯ã¼ã¯ Angular, React, Vue.jsãæ¯ã¹ã¦ã¿ãã (2018å¹´4æ)
JavaScriptãã¬ã¼ã ã¯ã¼ã¯ãæ¯è¼ãã¦ã¿ãã (2018å¹´4æ)
ããã¬ã³ãã®ç§»ãå¤ãããæ¿ããWebããã³ãã¨ã³ãã2017-2018å¹´ç¾å¨ãJSãã¬ã¼ã ã¯ã¼ã¯ã§æãæåãª3å¼·ãAngular/React/Vue.jsã®ï¼ã¤ã¨è¨ããã¦ãã¾ããä»ã«æ¥æ¬ã§æ¯è¼çèãã®ã¯Riot.jsãEmber.jsãHyperappãªã©ãããã¾ããã
ãã¡ããã¨FWé¸å®ã®æè¡èª¿æ»ã§ãããã調ã¹ããããã®ã§ããã®ã¨ã³ããªã§ã¯åå¦è
ãªãã«æ¯è¼ãæ´çãã¦ã¾ã¨ãã¦ã¿ããã¨æãã¾ãã
ããªãæå¾ã«ãæ¸ãã¦ããã¾ãããå®éã«ä½¿ã£ãããã¦å¾ãããç¥è¦ãããã°ãå
¥éã¬ãã«ã ã¨ç¢ºããããããªãã®ã§æ¬ããããã®æ
å ±ãæè¦ã®ä¸ã§å¤ããã®ã®åã売ãçã«ãªã£ã¦ããã¨ãããããã¾ãããã¬ã¼ã ã¯ã¼ã¯ã£ã¦çµå±ã©ããããã®ã¨ããè©±ã¯æ··ä¹±ãããå ´åã«ãã£ã¦ã¯èããã¡ã§ãããæçµçã«ã¯æ
å ±ã¯åèªã®å¤æã§ãå©ç¨ãã ããããã¬ã¼ã ã¯ã¼ã¯ã¯éçºãããè¯ãããããã®ææ®µã§ãããåç´ãªåªå£ã§ã¯ãªã驿驿ã§èãããã®ã§ãã

- JavaScriptãã¬ã¼ã ã¯ã¼ã¯ãæ¯è¼ãã¦ã¿ãã (2018å¹´4æ)
- Angular/React/Vue.jsã®æ¯è¼è¡¨
- JavaScript ãã¹ãã»ãªãã»ã¶ã»ã¤ã¤ã¼ (JavaScript Rising Stars)ã®é ä½
- The best of JavaScript, HTML and CSS ã®é ä½
- ãã©ã¹ã¨æãããã¨ãã
- ãã¤ãã¹ï¼ã¨æãããã¨ãã
- åãã¬ã¼ã ã¯ã¼ã¯ã®æ²ãã¦ããã¨ã¨ãç¹å¾´ã¨ã
2021å¹´å¤è¿½è¨ï¼ ãããã®ãã¬ã¼ã ã¯ã¼ã¯ã®å ¥éæ¬ã¾ã¨ãè¨äºææ°çã¯ä»¥ä¸ãã©ããã
Angular/React/Vue.jsã®æ¯è¼è¡¨
| é ç® | Angular | React | Vue.js |
|---|---|---|---|
| èªã¿æ¹ | ã¢ã³ã®ã¥ã©ã¼ã ã¢ã³ã°ã©ã¼ |
ãªã¢ã¯ã | ãã¥ã¼ã»ã¸ã§ã¤ã¨ã¹ |
| æä¾å | Google åã³ã³ãã¥ãã㣠|
Facebook åã³ã³ãã¥ãã㣠|
å Googleã®AngularJSéçºãã¼ã ã ã£ãEvan Youãã(ä¸å½äºº)åã³ã³ãã¥ãã㣠|
| åç | 2009 | 2011å¹´é | 2014/2 |
| ææ°ç | 2018/4 | 2017/9 | 2017/12 |
| ææ°ãã¼ã¸ã§ã³ | 6.0.0 (åå¹´ãã¨ã«ä¸ãã) |
16.0 | 2.5.16 |
| GitHub ã¹ã¿ã¼æ° |
v2-: 35,300 v1:58,300 |
94,100 | 91,600 |
| Qiitaã¿ã°æç¨¿æ°(æ§Verå«ã) | 600+500+1300 | 1300+1500 | 1200 |
| teratail ã¿ã°æ°(æ§Verå«ã) |
50+560 | 530 | 360 |
| åé | V1ã®AngularJSããAngular2ã«äºææ§ããªãã£ããã2014ï½2015ã«ä¸æä½è¿·ãä¸é¨ãReactã«æµãããã®å¾å¾©æ´»ã | Facebookã¨ä¿äºä¸ã®ä»ç¤¾ã¯ä½¿ããªãã¨ããBSDã©ã¤ã»ã³ã¹åé¡ããã£ãã2017å¹´ã«MITã«ç§»è¡ãã¦è§£æ±ºã Reactã«ãªãããªãã£ã人ã¯Vue.jsã«æµãããã¿ã¼ã³ãã |
2016å¹´ã«Ver2ãåºã¦ããäººæ°æ¥ä¸æãåè 2ã¤ã®ããã¨ãã©ãã§ãã©ã³ã¹ãè¯ãã¨ããããç¹ã«ä¸å½åã§äººæ°ã |
| ã©ã¤ã»ã³ã¹ | MIT | v16ããMIT | MIT |
| å ¬å¼ãµã¤ã | æ¥æ¬èªåé²è¡ä¸ | ã¾ã è±èªã®ã¿ | å®å ¨ãªæ¥æ¬èªçãããèªã¿ããã |
| 該å½FWããã¼ãã«æ¥æ¬èªã§èªããæ¸ç±(Amazon) | Angular4-5: 4åããã Angular2: 1å AngularJS: 2å |
æ°æ§åããã¦10åããã | 3åããã |
| æ¥æ¬ã®ä¸»ãªããã°ã©ãã³ã°å¦ç¿ãµã¤ã | ãããã¤ã³ã¹ãã¼ã«ã«v1ã®AngularJSãåã¯ãã£ã(2012/8) | ãããã¤ã³ã¹ãã¼ã«ã«ãReactå
¥éã(2018/3)ãReactã§Todo管çã¢ããªãä½ããã(2018/3) CODEPREPã«ãã¯ããã¦ã®ReactããReactã§ä½ãTodoã¢ããªã(2017/9) |
ãããã¤ã³ã¹ãã¼ã«ã«ãVue.jså
¥éã(2018/2) CODEPREPã«ãã¯ããã¦ã®Vue.jsããVue.jsã§ä½ãç´ãã¢ã³ã¼ãã£ãªã³ããã«ã(2017/8-9) |
| å¤§æ æ¡ç¨å®ç¸¾ |
Webãµã¼ãã¹ç³»å種 Google Analytics, Firebaseãªã©Google社å ãµã¼ãã¹ã§ã600ç¨®ä»¥ä¸ |
Facebookã®ãµã¼ãã¹å種 任天å ããµã¤ãã¼ã¨ã¼ã¸ã§ã³ã Instagram, Netflix, Twitter ã¯ã¦ãªããã°ããã³ãã³åç»ãpixivã |
ã¢ãªãã(ä¸å½æå¤§ã®Eã³ãã¼ã¹ä¼æ¥) GitLab Adobe PHPã®LaravelãOnsen UIãªã©ãã¹ãã³ãµã¼ |
| å¶é | ECMAScript 5 æºæ ã®ãã©ã¦ã¶å¯¾å¿ãIE8以ä¸ã¯æªå¯¾å¿ã (PolyFillã©ã¤ãã©ãªã§ä¸é¨åé¿ã§ããããã) |
å·¦ã«åã | å·¦ã«åã |
| ããã°ã©ã è¨èª | TypeScript | JavaScript(ES5ãå¯) JSXè¨æ³ å®ã¯TypeScriptãæ¡å¼µã§ãµãã¼ã |
JavaScript(ES5ãå¯) å®ã¯TypeScriptãJSXè¨æ³ãæ¡å¼µã§ãµãã¼ã |
| ãã¼ã¿ãã¤ã³ãã£ã³ã° | ãã¼ã¿ââHTMLã®åæ¹å | ãã¼ã¿âHTMLã®çæ¹å (éã¯ã¤ãã³ããæ¾ãsetState()ãå¿ è¦) |
ãã¼ã¿ââHTMLã®åæ¹å |
| ç¨®å¥ | ãã«ã¹ã¿ãã¯ãª JavaScriptãã¬ã¼ã ã¯ã¼ã¯ |
Viewã®è¡¨ç¤ºç³»ã«ç¹åããJavaScriptã©ã¤ãã©ãªããã¬ã¼ã ã¯ã¼ã¯ã«è¿ãã | å¾çºã®ã·ã³ãã«ãªJavaScriptãã¬ã¼ã ã¯ã¼ã¯ãã©ã¤ãã©ãªã¨ãã |
| ã¢ã¼ããã¯ãã£ã»ãã¿ã¼ã³ | Model-View-Whateverã¨ã®ãã¨(AngularJSæä»£ã®ã³ã¡ã³ã) | å ¬å¼ã§ã¯MVCã®Vã®ã¿ã¨ã®ã㨠| Model-View-ViewModelã®å½±é¿ãåãã¦ãã(Vã¨VMã«ç¸å½) |
| æ¬ä½ã®æ§æ | ãã«ã¹ã¿ãã¯ãªã®ã§æ¬ä½ãæ©è½å ¨é¨å ¥ããæ¬ä½ã ãã§ããç¨åº¦å®çµã | æ¬ä½ã¯æå°éãå¨è¾ºã©ã¤ãã©ãªç³»ã§æ©è½ãå¼·åã | Reactã¨åããæ¬ä½ã¯ã·ã³ãã«ï¼å¨è¾ºã©ã¤ãã©ãªã |
| ç¸å¯¾çãªå°å ¥ã»å¦ç¿ã³ã¹ã | 大ãTypeScriptã¨ããæ°è¨èªãæ¬ä½ã夿©è½ãæ°æ¦å¿µãå¤ãè¦ãããã¨ãå¤ãã | ä¸ã段éçã«å§ããããã®ã§Angularããæ¥½ã | ä¸ï½Reactããè¥å¹²å°ããã¡ããæ®µéçã«å§ãããããä»çµã¿ãã·ã³ãã«ã§å§ããããã |
| jQueryã¨ã®å ±å | ä¸å¿ã§ããããã ããUIã©ã¤ãã©ãªç³»ãä¸ã§jQueryã使ã£ã¦ããã®ã§ä»æ¹ãªãä½µç¨ããªã©ã®äºæ ãé¤ãã¨ãã¾ãæå³ããªãã(ããã¯3ã¤ã¨ãåã) | Reactã使ã£ã¦render()颿°ã§ã¿ã°ãæ§ç¯ãã¦è¡¨ç¤ºãã¦ããé¨å以å¤(React管çå¤)ãªãå¯è½ã | é©ç¨ãããHTMLã³ã¼ããããã¯ã«idãã¤ãã¦ãã¤ã³ãããã®ã§ããã®å¤å´(Vue.js管çå¤)ãªãä¸å¿å¯è½ã |
| å¤§è¦æ¨¡ã¢ããªã±ã¼ã·ã§ã³ç¨ã®ç¶æ 管ç | ã»Reduxã©ã¤ã¯ãª@ngrx/storeã©ã¤ãã©ãª | ã»Fluxã¢ã¼ããã¯ãã£ãå®è£
ããRedux ã»ç¹ãé¨åãæ¹è¯ããreact-redux ã»æè¿ã¯MobX ãåºã¦ãã (react-redux以å¤ã¯Reactå°ç¨ã§ãªãJSã©ã¤ãã©ãª) |
ã»å ¬å¼ãµãã¼ãã®Vuexã©ã¤ãã©ãª(Flux,Reduxã®å½±é¿ãåãã¦ãã) |
| URLã«ã¼ãã£ã³ã°æ©è½ | æ¬ä½ã«å ¥ã£ã¦ãã | å ¬å¼ãµãã¼ãã® react-router ã©ã¤ãã©ãª | å ¬å¼ãµãã¼ãã® vue-router ã©ã¤ãã©ãª |
| ãã¹ã ãµãã¼ã |
JSãã¹ããã¬ã¼ã ã¯ã¼ã¯ã®Jasmineï¼JSãã¹ãã©ã³ãã¼ã®Karmaã®ã»ãããåºæ¬ãKarmaã¯Angularéçºãã¼ã 製ã E2Eãã¹ã(çµåãã¹ã)ç¨ã«ã¯Angularç¨ã®Protractor |
Reactç¨ã«Facebookãéçºããã©ã¤ãã©ãªJestï¼Airbnb製ã®Reactä»®æ³ã¬ã³ãã©ã¼ã®Enzymeã®ã»ããã | ç¹ã«æå®ãªããå ¬å¼ã¯Jasmineï¼Karmaãåãä¸ãã¦ããã(Angularã¨åã) |
| ãããã° ãã¼ã« |
åºæ¬ã¯Chromeä»å±ã®Developer Tools | ã»Chromeæ¡å¼µã®React Developer Tools ã»ãã¹ã¯ãããã¢ããªã®Reactotronã¨ããã®ãããããã |
Chrome Developer Toolsãæ¡å¼µãã Vue.js devtools |
| ã³ãã³ããã¼ã«ããã¤ã©ã¼ãã¬ã¼ã | Angular CLI | æè»½ã«æ°è¦ã¢ããªãä½ãã create-react-app | æè»½ã«æ°è¦ã¢ããªãä½ãã vue-cli |
| 主ãªUI ã©ã¤ãã©ãª |
ã»AngularUIã¨ãè²ã | ã»ãããªã¢ã«ãã¶ã¤ã³ç¨ã®Material-UI ã»ãã©ãããã¶ã¤ã³ç¨ã®grommet ã»ãè²ã |
ã»element-ui ã»vuetify ã»Bootstrap Vueãªã©è²ã |
| ãã¤ãã£ãã¢ããªç¨ ãã©ãããã©ã¼ã |
Ionic | React Nativeã æãæå |
Weex æè¿ã¯Vue Native ã¨ããã®ã |
| SSRç¨ Universal JavaScript applicationã®ãã¬ã¼ã ã¯ã¼ã¯ |
Angular Universal | Next.js (v5) | Nuxt.js (ãã¯ã¹ã, v1.4.0) |
â Nuxt.js ã¯ãã¯ã¹ãã§ãªããã¯ã¹ããæ£ããããã§ããã ãã¨ã« (id:munieru_jp)ãããããã¨ããããã¾ããã
angular.jp reactjs.org jp.vuejs.org
JavaScript ãã¹ãã»ãªãã»ã¶ã»ã¤ã¤ã¼ (JavaScript Rising Stars)ã®é ä½
ãGitHubã®ã¹ã¿ã¼æ°ã§è©ä¾¡ããã©ã³ãã³ã°ãããã³ãã¨ã³ããã¬ã¼ã ã¯ã¼ã¯(Front-end Frameworks)ã®ã«ãã´ãªã§é ä½ãæç²ã
| å¹´ | Angular | React | Vue.js |
|---|---|---|---|
| 2016å¹´ | 3ä½ | 2ä½ | 1ä½ |
| 2017å¹´ | 3ä½ | 2ä½ | 1ä½ |
The best of JavaScript, HTML and CSS ã®é ä½
ããã¡ããGitHubã®ã¹ã¿ã¼æ°ã§è©ä¾¡ãã¦éææ´æ°ãã¿ã°ã®ãUI Frameworkãã®é ä½ã
| - | Angular | React | Vue.js |
|---|---|---|---|
| - | 3ä½ | 1ä½ | 2ä½ |
ãã©ã¹ã¨æãããã¨ãã
Angular
- ãã«ã¹ã¿ãã¯ãªã®ã§ã©ã¤ãã©ãªã調ã¹ãã追å ããªãã¦ãæåããæ©è½å ¨é¨å ¥ãã大æµã®ãã¨ã¯å®ç¾ã§ãããå ¬å¼ãä¿¡é ¼ãã¦ã¢ããªéçºã«éä¸ã§ããã
- DIã³ã³ããã®æ¦å¿µããã¹ãã®ãã©ãã¼ããããèªåãã¹ãå®ç¾ã¸ã®éãããã
- Googleå°ãªã®ã§å°æ¥ããã¶ãå®å¿ã
- è¦æ¨¡å¤§ãéçºã¡ã³ãå¤ããéçºã«ã¼ã«ãå®ãã¦Angular Wayã«å¾ã£ã¦ãã£ããããå¤§è¦æ¨¡æ¬æ ¼éçºã«åãã¦ãããè¥å¹²ã³ã¼ãã¬ã¼ãå¯ããSIéçºå¯ããªã¤ã¡ã¼ã¸ã
- é¨åçã§ãªãå ¨é¢çãªå°å ¥ãåºæ¬ãç¹ã«SPAã«åãã¦ããã
- éçºè¨èªãTypeScriptãªã®ã§ãåã®åå¨ãã³ã¼ãããã£ãããã°ããå®ã£ã¦ãããã
React
- ã©ã¤ãã©ãªç³»ãç¹ã«è±å¯ã
- Angularããå°å ¥ã³ã¹ããä½ããã¹ã¢ã¼ã«ã¹ã¿ã¼ããå¯è½ã
- æ¬ä½ã¯Viewç¹åã®ã©ã¤ãã©ãªãªã®ã§æè»½ã«å°å ¥ã§ããã
- Vue.jsããã¯å¤§è¦æ¨¡ãè¤éãªã¢ããªã«åãã¦ããã
- åFWã¨é¢é£ãé²åä¸ã®ã¢ãã¤ã«ç¨ãã©ãããã©ã¼ã ã®ä¸ã§ã¯ãReact Nativeãææåã§å°æ¥ãæå¾ ã
- éçºä¸ã®è±èªã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ãä¸å¯§ã¨ã®ãã¨ã(å ¥éæ¸ã«ããã¨)
- ç¶æ 管çã®Reduxãå ¥ããæ¬æ ¼çãªã¢ããªã«ãªãã¨ç´ç²ãªé¢æ°ãããªãã³ã¼ããã¡ã¤ã³ã«ãªãããã¹ãã£ã³ã°ã»ãã¬ã¼ã ã¯ã¼ã¯ã§åä½ãã¹ããããããã
- Flowã¨ããéçåãã§ãã«ã¼ãå°å ¥ããã¨ãTypeScriptã®ããã«åã§ã³ã¼ããä¿è·ãã¦ãããã
- React+Reduxã§ã¯ã表示ã ããæ å½ããPresentationalã³ã³ãã¼ãã³ãã¨ãã¸ãã¯ãããContainerã³ã³ãã¼ãã³ãã«åããã®ãåºæ¬ããã®å®ç³ã«å¾ãã¨ã³ã³ãã¼ãã³ãè¨è¨ã大ä½ãã¾ãããã
- Simpleã§ãããæ¬ä½å«ãã©ã¤ãã©ãªããããã¯ã·ã³ãã«ã«1ã¤ã®ãã¨ãå®ç¾ãããã®Simpleãªã©ã¤ãã©ãªãè¤æ°çµã¿åããã¦è¦æ±ãå®ç¾ã§ããã
Vue.js
- ãã¡ããã¹ã¢ã¼ã«ã¹ã¿ã¼ãå¯è½ãæ¢ã«HTMLãããç¶æ ã§çµã¿è¾¼ãã«ã¯ç¹ã«åãã¦ããã¨è¨ãããã
- Reactã¨éããã©ã³ã¹ã³ã³ãã¤ã«ä¸è¦ã§ããåãã(å¤é¨ã®.vueãã¡ã¤ã«ã«JS/CSS/HTMLãã¾ã¨ãããåä¸ãã¡ã¤ã«ã³ã³ãã¼ãã³ããå½¢å¼ã«ããã¨å¿ è¦ã«ãªã)
- Reactã¨éãã³ã³ãã¼ãã³ãå è¨è¿°ã¯åºæ¬ã¯HTMLã¨JSãç¬ç«ããã綺éºã«æ¸ããã
- ç¹ã«ã·ã³ãã«ãªã¢ããªã«åãã¦ããã
- åºæ¬çãªã©ã¤ãã©ãªç¾¤ã¯å ¬å¼ãæä¾ãã¦ããå®å¿ã
- ãã¤ãã®JavaScriptã§å§ãããã¦è¦ªãã¿ããããå¦ç¿ã³ã¹ããä½ãã
- å¾è¿°ã®ããã°ã¬ãã·ãã»ãã¬ã¼ã ã¯ã¼ã¯ã®èãæ¹ã§æåã¯ãã©ã³ã¹ã³ã³ãã¤ã«ã«ãããã«ããªãã§å§ããããããä»çµã¿èªä½ã«æè»æ§ãããã
- ãµã¼ããµã¤ããPHPã§ãããªãæè¿ããã¡ã¯ãã«ãªãã¤ã¤ããLaravelã®5.3ï½ã«æ¨æºæè¼ããã¦ãããç¹ã«ç¸æ§ãããå ¬å¼ã¹ãã³ãµã¼ã§å®å¿ã
- ãããã¯ãåãã§ã¯æ¨å¥¨ã®åä¸ãã¡ã¤ã«ã³ã³ãã¼ãã³ãå½¢å¼ãå°å ¥ããã¨ãJSã®ãã¸ãã¯/HTMLã®ãã³ãã¬ã¼ã/CSSã®ã¹ã¿ã¤ã«ã¨ããé¢å¿äºãã³ã³ãã¼ãã³ããã¨ã«å®å ¨ã«åé¢ãã¦ççµåãå®ç¾ã§ãããå°æ¥ã®HTMLã®Web Componentsã®æ¦å¿µãå åãã
- Easyã§ããã主è¦ã©ã¤ãã©ãªã«ã¯å¤§ä½ãã¹ããã©ã¯ãã£ã¹ãç¨æããã¦ãããè¿·ããé²ããã¨ãã§ããã
ãã´ããã ã¯ã¤ãé è²ã§è¦ªãã¿ãããç®è¬ã®Vã»ãã¼ãã¨ãä¼¼ã¦ãã¦è¦ªãã¿ããã
ãã¤ãã¹ï¼ã¨æãããã¨ãã
Angular
- æ°è¨èªTypeSciptå¦ç¿ãæ¦å¿µå¦ç¿è«¸ã ã¨ãå°å ¥ã»å¦ç¿ã³ã¹ããå¾ã®2ã¤ããè¥å¹²é«ãã
- å ç¢ã ããã®åå¶ç´ããããAngularã®æµå(Angular Way)ã«å¾ãå¿ è¦ãããã
- 夿©è½ã§ãããå°è¦æ¨¡ãªã¢ããªã§ã¯ãªã¼ãã¼ã¹ããã¯ã«ãªãã
- ã»ãï¼ã¤ã«æ¯ã¹ãã¨é¨åçãªå°å ¥ãé£ãããæ¢åã¢ããªãªãå ¨å ¥ãæ¿ãã®ã¤ã¡ã¼ã¸ã
- éçºãä¸åº¦Angularã§å§ããã¨åºæ¬çã«ä¹ãæãã¯ã§ããªãã®ã§å¼ãè¿ããªãã
React
- JSXè¨æ³ã ã¨JSã®ä¸ã«HTML(ã¿ã°å¤å®ãå³å¯ãªã®ã§æ£ç¢ºã«ã¯XML)ãæ¸ããã¨ã«ãªããã»ã¼æ £ãã®åé¡ã ããããæè¦çã«å«ãã人ãå¤ãããã¶ã¤ãã¼ã¨ã®åæ¥ã§å°ãããã¨ãã
- å ¬å¼ã¯ã³ã¢ã ãæä¾ãã¦ã¨ã³ã·ã¹ãã ã®ã©ã¤ãã©ãªã¯å¨è¾ºã«ä»»ããæ¹éããã®ããå ¬å¼ä»¥å¤ãæä¾ãã¦ããæ²¢å±±ã®ã©ã¤ãã©ãªã«ã¤ãã¦ã¯åæ¨é¸æã«ç¥èã調æ»ãå¿ è¦ã
- JSXãæ¸ããªãããæ¹ãä¸å¿ãããã»ã¼JSXå¿ é ãªã®ã§ãåããæã«ãã©ã³ã¹ã³ã³ãã¤ã«ãå¿ é ã(BabelãWebpackãªã©)
- CSSã表示é¨åã®ãã³ãã¬ã¼ãã®ãã¡ã¤ã«åå²ãè¡ãã«ããã¨ã®ãã¨ã
Vue.js
- å¾çºã®ããæ å ±ã®è±å¯ããæ¡ç¨å®ç¸¾ã®å¤ããã©ã¤ãã©ãªã®æ°ã§ã¯è² ããã(ãã®å²ã«ã¯ä¼¸ã³ã¯ããªã大ããã)
- 天ä¸ã®GoogleãFacebookã¨å¤§ä¼æ¥ããµãã¼ããã¦ããåè ï¼ã¤ã«æ¯ã¹ãã¨ãéçºè ã®è¦æ¨¡ãå°ããã
- å¤§è¦æ¨¡ã¢ããªãã³ã³ãã¼ãã³ããå ¥ãçµãã æ§æã«ãªã£ã¦ããã¨ãåè ï¼ã¤ãåªå¢ã¨ãè¨ãããã
- Reactã«æ¯ã¹ãã¨ã³ã³ãã¼ãã³ãã®ç²åº¦ãèªç±ãªã®ã§ãæè»ãªåã³ã³ãã¼ãã³ãè¨è¨ã§æ©ã¾ãããªãæãããã
- JSã®ä¸ã«HTMLãæ¸ããªãã®ã§ã確ãã«ãReactãããã¤ã±ã¦ããâãã¨åè¦ã§ã¯æãããããããé«åº¦ãªä½¿ãæ¹ã§åå©ç¨å¯è½ãªã³ã³ãã¼ãã³ãã使ãã ãã¨JSã®ä¸ã«HTMLãæ¸ãããæ¹ããããå®ã¯ã ãã ãReactã¨ãã¾ãéããªããªã£ã¦ããã(JSXè¨æ³ãTypeScriptãå®ã¯ä½¿ãããããã)
âããã¯ãã¤ãã¹é¢ã§ã¯ãªãã§ããããã£ã¦åãã£ãç¥è¦ã¨ãã¦... - æ¥æ¬èªã§ããã¥ã¼ãã¨çºé³ããã¨ãViewã®ãã¥ã¼ã¨è¥å¹²ç´ããããã(Wikipediaã ã¨ãã´ã¥ã¼ãã¨ãããå ¬å¼ã®ç´¹ä»åç»ã®ãå ããã¨Evanãããè±èªã®ãã´ã¥ã¼ãã½ãçºé³ããã¦ãã¾ããå ¬å¼ããã¥ã¡ã³ãã§ãçºé³ã¯ / v j u Ë /ã view ã¨åæ§ãã¨ããã®ã§ãæ¥æ¬èªã ã¨ãã£ã±ãããã¥ã¼ããªã®ã§ã¯ã )
åãã¬ã¼ã ã¯ã¼ã¯ã®æ²ãã¦ããã¨ã¨ãç¹å¾´ã¨ã
Angular
- ã¯ãã¹ãã©ãããã©ã¼ã ï¼PWAãå«ãWebã¢ããªããã¹ã¯ãããã¢ããªããã¤ãã£ãã¢ããªãä½ãã
- ã¹ãã¼ãã¨ããã©ã¼ãã³ã¹ï¼TypeScriptã³ã¼ãã夿ãã¦åä½ã夿´ã³ã¼ãã¯ããèªã¿è¾¼ã¾ããããã¬ã³ããªã³ã°ããé«é稼å
- çç£æ§ï¼ãã³ãã¬ã¼ãã§è¨è¿°ãæ§ã ãªIDE対å¿ãAngular CLIããã
- å®å ¨ãªéçºã¹ãã¼ãªã¼ï¼ãã¹ãããµãã¼ããã¢ãã¡ã¼ã·ã§ã³æ©è½ãããã¢ã¯ã»ã·ããªãã£ã¨éçºå ¨ä½ããµãã¼ã
- HTMLãã¼ã¹ã®ãã³ãã¬ã¼ãã¨ã³ã¸ã³æè¼ã1ãã¡ã¤ã«ã«HTMLã¿ã°é¨åãæ¸ããã³ãã¬ã¼ãã¨ãTypeScriptè¨èªã®ã³ã³ãã¼ãã³ãã¯ã©ã¹ãè¨è¿°ããã®çµããã³ã³ãã¼ãã³ããã¨ãã¦åä½ã
- å¾è¿°ã®ä»®æ³DOMã¨ã¯ã¡ãã£ã¨éãããDOMãã³ã³ãã¼ãã³ãã¨çµã³ã¤ãã¦æ½è±¡åãã¦ç®¡çã
- ã³ã³ãã¼ãã³ãã¨ãã³ãã¬ã¼ãã®éã®ãã¼ã¿ãã¤ã³ãã£ã³ã°æ©è½
- ãã£ã¬ã¯ãã£ãã¨å¼ã¶HTMLã«ã¹ã¿ã 屿§ãå®ç¾©ãææ¸ããªã¼ãæä½ãng-***ã¨ãã屿§ãä»ä¸ãããHTMLæ¡å¼µ
- 表示ããå¤ãå å·¥ããããã®ãã¤ãæ©è½ãã
- ãã©ã¼ã éçºãAngularç¨ã«æ¡å¼µããã¦ãã
- ãµã¼ãã¹ã¨ããã¬ã¤ã¤ã¼ã®ã¯ã©ã¹ããããã³ã³ãã¼ãã³ãï¼ãµã¼ãã¹éã®ä¾åé¢ä¿ã解決ããDIã³ã³ãããè£ å
- åä½ãã¹ã/ã·ããªãªãã¹ããæ¯æ´ãããã¹ããã¬ã¼ã ã¯ã¼ã¯ããã
React
- ã¦ã¼ã¶ã¤ã³ã¿ã¼ãã§ã¼ã¹ãæ§ç¯ããããã®å®£è¨çãå¹ççããã¬ãã·ãã«ãªJavaScriptã©ã¤ãã©ãª
- 宣è¨çã§ãã
- ã³ã³ãã¼ãã³ããã¼ã¹ã§ãã
- Learn Once, Write Anywhereï¼Reactãå¦ã¹ã°ã¹ããéçºã§ãReact Nativeã使ãã (æã®Javaã®ãã£ãããã¬ã¼ãº Write Once, Run Anywhereã®ããã)
- ä»®æ³DOMã«ããé«éå¦ç
- stateã§ç¶æ ãä¿æã§ãã
- JavaScriptãæ¡å¼µããJSXè¨æ³ã§ã³ã³ãã¼ãã³ããã¯ã©ã¹ã¨ãã¦è¨è¿°ãä¸ã«HTMLã¿ã°ãä¸é¨å ¥ãã
- ã³ã³ãã¼ãã³ãå ã§ã¤ãã³ãã管çã
- 颿°åããã°ã©ãã³ã°ã®å½±é¿ãåãã¦ãããJSãã®ãã®ã®ããã°ã©ãã³ã°åãæ´»ããã
- éçãµã¤ãåãã®React Staticã¨ããã®ãæè¿åºã¦ããããã¦ã
Vue.js
- 親ãã¿ãããï¼ã馴æã¿ã®HTMLãCSSãJavaScriptã§æ¸ãã
- èéãå©ãï¼ã¢ããªè¦æ¨¡ã«å¿ãã¦ã©ã¤ãã©ãªãå¾ã ã«æ¡ç¨å¯è½ãªã¨ã³ã·ã¹ãã
- 髿§è½ï¼æ¬ä½ãã³ã³ãã¯ããä»®æ³DOMã§é«éåä½
- ã¢ãã·ãªãã¯(monolithic, 䏿岩)ãªå¤§ããªãã¬ã¼ã ã¯ã¼ã¯ã¨ç°ãªããããã°ã¬ãã·ãã»ãã¬ã¼ã ã¯ã¼ã¯(Progressive Framework)ã§ããï¼Vue.jsã®ã³ã¢ã¯ã·ã³ãã«ãªã©ã¤ãã©ãªãã¢ããªã±ã¼ã·ã§ã³ã®è¤éããè¦æ¨¡ãå¤åãããã¸ãã¹ã«å¿ãã¦ãå¨è¾ºã©ã¤ãã©ãªã追å ãããã¨ã§ãã¬ã¼ã ã¯ã¼ã¯å´ã®è¤éããå¢ãã¦æ®µéçã«ãæè»ã«å¯¾å¿ã§ãããã¨ããèãæ¹ã
åãåèªã®Progressiveãåºã¦ãã¦ãPWA: Progressive Web Appsã¨ã¯ã¡ãã£ã¨éã話ã - ã³ã³ãã¼ãã³ãã§ã¢ããªã±ã¼ã·ã§ã³ãåå²
- HTMLãã¼ã¹ã®ãã³ãã¬ã¼ãæ§æã§è¡¨ç¤ºã¨ã³ã³ãã¼ãã³ãå´ããã¤ã³ã
- ãªã¢ã¯ãã£ãã·ã¹ãã ã§ç¶æ ã管ç (=JavaScriptä¸ã§å®ç¾©ãããã¼ã¿ã夿´ãããã¨ããã¥ã¼ãèªåçã«å¤æ´ããã)
ã
ã使ã«å½ãã£ã¦ã¯ãããä¸ã®æ§ã
ãªã³ã³ãã³ããæ¥æ¬èªã§èªããæ¸ç±ããµã³ãã«ã³ã¼ããç°¡åãªã¢ããªè©¦ä½ãªã©ãè¡ã£ã¦ç·åçã«æ
å ±åéãã¾ãããæ
å ±ãå
¬éãã¦ãããå
人ã®çãããããã¨ããããã¾ãã
ã ããããããã®æ
å ±ãæ¬ã®åã売ããªã®ã§ããã»ã©ééã£ããã¨ã¯è¨ã£ã¦ããªãã¨æãã¾ãããå®éã®ãããã¯ãã§æ¢ã«ã¢ãªã¢ãªä½¿ã£ã¦ããä¸ç·ã®JSerãJavaScriptãã³ã¸ã£ããªæ¹ãªã©ã®ç¾å ´ã®è¦³ç¹ããã®ããç²¾å¯ãªæè¦ãããã¾ããããä»å¾ãããããã®ç«å ´ããå
±æãã¦ããã ããã¨å¾ã«ç¶ãçããããã¼ã«ãªããã¼ã¹ã
ããã°ããããã¨ã©ããã¾ãæ°ããã®ãã¾ãã½ãã£ã¨åºã¦ããããããã§ãããJavaScriptãã¹ãã»ãªãã»ã¶ã»ã¤ã¤ã¼ã®éè¨ã«ããéãã§é ä½ã¯2016,2017å¹´ã§å¤ããããæ¥æ¬èªã®æ
å ±ãå
ã«æ¥æ¬ã§ä½ãä½ããªããã®ï¼å¼·ããé¸ã¹ã°ã¨ããããã¯ééããªãããã§ãã
ãã¨ã¯å¯¾è±¡ã¢ããªã±ã¼ã·ã§ã³ã®ç¹æ§(å½¢æ
ãè¦æ±ã¨ä»æ§ãè¤éããè¦æ¨¡ãä»ã®æè¡è¦ç´ ããµã¼ããµã¤ãã®ç¹æ§â¦â¦)ãããã¸ã§ã¯ãã®ç¹æ§(éçºæéãéçºç°å¢ããã¼ã æ§æãè¦å¡æ°ãè¦å¡ã¹ãã«â¦â¦)ãªã©ãªã©ã®ç¶æ³ã«å¿ãããã¬ã¼ã ã¯ã¼ã¯é¸å®ãè¡ãå½¢ãã¨æãã¾ãã
ãéã«è¨ãã¨ã¾ãæãåã£ã¦Angularã§è¡ããå¦ãã®é¸æããããå¤§è¦æ¨¡ã§ãã£ã¡ãããæ°è¦éçºããµã¤ããªãã¥ã¼ã¢ã«ãä½ãç´ãã«è¿ãæ¡ä»¶ã¯Angularããããelseãªã次ã«ReactãVue.jsãã®2æâ¦â¦ã¨2åã®é¸æã«ãªããããªæ°ããã¾ãã調ã¹ãéãã§ã¯ãReactã§ãVue.jsã§ãæ¬ä½ã®ããªã¥ã¼ã ãç¿å¾é£æåº¦ã¯å¤§ã¾ãã«ã¯åãããããå¨è¾ºã©ã¤ãã©ãªãªã©ãªã©å
¨é¢æ´»ç¨ããã°ããæ¹ã¯éã£ã¦ãã ãããåããããã®ã¨ããã¾ã§å®ç¾ã§ããããªã®ã§ãæè¦çã«ã¯ã©ã¡ããé¸ãã§ãOKãªæãããã¦ãã¾ãã(ãã£ã½ããå¤§è¦æ¨¡ã¢ããªã«ãªãã¨Reactã®æ¹ãè¥å¹²Betterã ã¨ããçµé¨è
ã®å£°ãããè³ã«ãã¾ãããå®éã®ã¨ããã©ããªãã§ãããã)
ãåãçæ¯å°ãåºæ¬ãµã¼ããµã¤ããªãã®ã§JSçéã¯æ¬é ãã¦ããã®ã§ããããããã¦ä½ç³»çã«èª¿ã¹ã¦æ´çãã¦ä¸¦ã¹ã¦ãã£ã¦ã ãã¶çè§£ãé²ãã æ°ããã¾ããåããããªã¹ãããã«ããæ¹ã®å©ãã«ãªãã°å¹¸ãã§ãã
ãæ¸ç±ã§ãã詳ãã調ã¹ããæ¹ã¯ãã¡ãã®è¨äºãã©ããã(追è¨ï¼2018å¹´æ¥æç¹ã§å¤ãã®ã§ãåé ã®2021å¹´çããåç §ãã ãã) iwasiman.hatenablog.com