SlideShare a Scribd company logo
1 of 31
Download to read offline
AngularJSからReactに
移ったケースの話
2015-08-30
Yosuke Kumakura
Yosuke Kumakura (kumatch)
https://twitter.com/kumatch
https://github.com/kumatch
Agenda
• 自分がフロントエンド JS フレームワークを
AngularJS から React に移した背景を紹介
• 思い出(昔話)を語ります
• 記憶の(都合よい)改変があるかも
• 当時と今はまた状況が変わってます
サーバサイドがメイン
• Web アプリケーション & インフラエンジニア
• JavaScript はついでにやる程度だった
• jQuery でなんかやるくらい
∼ 2013年
Data binding
Directive (Component)
Dependency Injection (DI)
機能面とその実装方法
サーバサイドがメイン (2回目)
• Web アプリケーション & インフラエンジニア
• JavaScript は で使っている
• かなり優れた eco system
• JS 開発環境
• concat, minify, compile
• browserify
&
      は
Node.js 普及前の成果物
• 当時の AngularJS (1.2 直後) は CommonJS
module 体制ではなかった
• ライブラリも当然ながら非 CommonJS
• ツールだけは Node.js を有効活用していた

(ex. Testacular - 現 Karma)
• bower のみ
• AngularJS 公式ではないものは一応あった
は CommonJS module じゃなので
     による配布はされていなかった
package.json を持っていない GitHub JS コードを
npm_modules 以下へ持ってくるツールを使う
require(“angular/angular”);
Browserify によってコードがバンドルされる
angular.module(“myApp.services”, []).
value(“version”, 0.1).
service(“echoHello”, [ “version”, function (version) {
return function () {
console.log(“hello, “ + version);
};
}]);
module.exports = function (version) {
return function () {
console.log(“hello, ” + version);
};
};
Node.js 利用者から見ると微妙に
マッチしていない JavaScript 実装体制
できなくはないが
無理やりフィットさせている。
2014年 ∼
React
Node.js 以後の世界
npm modules は資産
React
Component
関心事の集約
(見た目 & 振る舞い)
React
One way data flow
Simple
(not Easy)
React
現在とこれから
CommonJS modules 化
すべて npm で導入可能
の登場
実行環境こそは Node.js だけども
これまでのフロントエンド開発のノウハウを集約
(めっちゃ頑張ってる)
Node.js 以後の世界
まとめ
• AngularJS はそこまで嫌いでもなかった
• 自分にとってフィットしてなかっただけ

(環境、時代)
• 状況はまた一刻と変わってます

好みで選びましょう
Question ?
( for )
React

More Related Content

What's hot

Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
 

What's hot (20)

Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたこと
 
俺とAngular JS 2
俺とAngular JS 2俺とAngular JS 2
俺とAngular JS 2
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティスコンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
 
Angular2実践入門
Angular2実践入門Angular2実践入門
Angular2実践入門
 
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
 
Angular js開発事例
Angular js開発事例Angular js開発事例
Angular js開発事例
 
AngularJSを浅めに紹介します
AngularJSを浅めに紹介しますAngularJSを浅めに紹介します
AngularJSを浅めに紹介します
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
React.js + Flux
React.js + FluxReact.js + Flux
React.js + Flux
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
 
Angular js はまりどころ
Angular js はまりどころAngular js はまりどころ
Angular js はまりどころ
 
Alt01-LT
Alt01-LTAlt01-LT
Alt01-LT
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
One-time Binding & $digest
One-time Binding & $digestOne-time Binding & $digest
One-time Binding & $digest
 
AngularJSについて
AngularJSについてAngularJSについて
AngularJSについて
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
 
Selenium2(web driver) ide編
Selenium2(web driver) ide編Selenium2(web driver) ide編
Selenium2(web driver) ide編
 

Similar to AngularJSからReactに移ったケースの話

今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門
西畑 一馬
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
 

Similar to AngularJSからReactに移ったケースの話 (20)

AngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSとAngularJSとFluxとRiotJSと
AngularJSとFluxとRiotJSと
 
Om Next ~React.jsを超えて
Om Next ~React.jsを超えてOm Next ~React.jsを超えて
Om Next ~React.jsを超えて
 
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
 
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・AndroidアプリハンズオンJavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
 
今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門
 
テスト
テストテスト
テスト
 
React + Flux
React + FluxReact + Flux
React + Flux
 
Nulabとawsと私
Nulabとawsと私Nulabとawsと私
Nulabとawsと私
 
Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
Our Track to Modern Angular
Our Track to Modern AngularOur Track to Modern Angular
Our Track to Modern Angular
 
Javaにおけるモジュラリティ元年
Javaにおけるモジュラリティ元年Javaにおけるモジュラリティ元年
Javaにおけるモジュラリティ元年
 
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみたReact Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
 
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
 
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリングReact Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
 
Intoroduction to React.js
Intoroduction to React.jsIntoroduction to React.js
Intoroduction to React.js
 
さわってみようReact.js、AngularJS(1系、2系)
さわってみようReact.js、AngularJS(1系、2系)さわってみようReact.js、AngularJS(1系、2系)
さわってみようReact.js、AngularJS(1系、2系)
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
 

More from kumatch kumatch (7)

Node platforms
Node platformsNode platforms
Node platforms
 
Nodeを稼働させる
Nodeを稼働させるNodeを稼働させる
Nodeを稼働させる
 
Node.js patterns of module export / require
Node.js patterns of module export / requireNode.js patterns of module export / require
Node.js patterns of module export / require
 
Node.js Error & Debug Leveling
Node.js Error & Debug LevelingNode.js Error & Debug Leveling
Node.js Error & Debug Leveling
 
Learning a node stream
Learning a node streamLearning a node stream
Learning a node stream
 
[Node] Multiprocessing and runs continuously
[Node] Multiprocessing and runs continuously[Node] Multiprocessing and runs continuously
[Node] Multiprocessing and runs continuously
 
PHPカンファレンス関西2011/スマートフォン時代のWebシステム
PHPカンファレンス関西2011/スマートフォン時代のWebシステムPHPカンファレンス関西2011/スマートフォン時代のWebシステム
PHPカンファレンス関西2011/スマートフォン時代のWebシステム
 

Recently uploaded

Recently uploaded (7)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

AngularJSからReactに移ったケースの話