Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AngularJSで作ったアプリをReactで置き換えてみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
cancer
October 29, 2014
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AngularJSで作ったアプリをReactで置き換えてみた
cancer
October 29, 2014
More Decks by cancer
See All by cancer
JSXをモダンな感じで開発してみた
cancer
0
500
CSSスプライトを動的生成して快適ソシャゲ開発
cancer
1
280
JavaScriptでKeyframeAnimationを作ってみた
cancer
1
91
第2回 Sass勉強会 in 社内
cancer
1
86
Other Decks in Technology
See All in Technology
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
320
パッチ更新でterraform initが落ちた日
grimoh
1
140
Rust で関数型ドメインモデリング
takonda
0
170
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
200
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
110
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
440
大型犬好きによるPugの紹介
yamanoku
1
160
夫婦で子育てするための育児標準化
codmoninc
PRO
0
440
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
230
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
170
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
360
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
120
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Deep Space Network (abreviated)
tonyrice
0
370
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
WCS-LA-2024
lcolladotor
0
890
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
The Curse of the Amulet
leimatthew05
3
16k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
The browser strikes back
jonoalderson
0
1.8k
Transcript
AngularJS で作ったアプリ をReact で置き換えてみた
React
React XML like な構文(JSX) でComponent を定義 Component を組み合わせてView を構築 子Component
への値の受け渡しにはProps を使う ユー ザー の操作などで変化する値にはState を使う Component の各状態においてLifecycle Method が定義され てるのでよしなに使う
React を使うにあたって 1. Component を洗い出す 2. static に作ってみる 3. State
を使うべきところを洗い出す 4. State を置くところを決める 5. 子から親へデー タを戻す http://facebook.github.io/react/docs/thinking-in-react.html
Component
Component 実際に組み始める前にComponent の設計をする 折角なのでBEM で考えてみる .members -> <Members /> .members__list
-> <MembersList /> .members__list__row -> <MembersListRow /> .member-edit -> <MemberEdit />
Component JSX でXML のattribute のように書くことでComponent へ Props を渡すことができる BEM のclassName
をProps を使って渡してみる # <Members className="members" /> Members = React.createClass render: -> bemClassName = list: "#{@props.className}__list" <MembersList className={bemClassName.list} />
State
State getInitialState でstate を初期化 setState でstate の値を変更 componentDidMount でAPI リクエストをしてsetState
で更 新するといいらしい 子Component でstate の内容が変更されたら、 イベントで親 まで戻してあげる MembersList = React.createClass getInitialState: member: null componentDidMount: -> Api.members.get().done (member) => @setState member: member handleMemberEdit: (member) -> @setState member: member render: -> <MembersListRow member={@state.member} onMemberEdit={@handleMemberEdit} /> MembersListRow = React.createClass handleSave: -> @props.onMemberEdit(member) render: -> <MemberEdit
State 基本的にはState は多用せずにProps を使う 親からprops で与えられてたら、state じゃない 変化するものじゃなかったら、state じゃない 他のstate
やprops から処理されるものだったら、state じ ゃない http://facebook.github.io/react/docs/thinking-in- react.html#step-3-identify-the-minimal-but-complete- representation-of-ui-state
AngularJS vs React
DOM Component React のComponent の方が分割しやすい 責任範囲を小さくできるのでコー ドが煩雑化しにくそう 大きなComponent も作ろうと思えば作れるので設計大事 className(Props)
の引き回しでBEM が快適になる class="" に頑張って書かなくていいのは嬉しい やり過ぎると大変なことになりそうなのでほどほどに
State change ngScope が優秀 React.addons のReactlink を使うとtwo-way binding でき るらしい
Component のネストが深くなるとイベントで戻すのが辛く なる React.addons のclassSet を使うとAngular like にclassName の切り替えができる
まとめ
まとめ( 感想) AngularJS やBackbone(Marionette) と比べるとView のコンポ ー ネント化がしやすい BEM を始めCSS
の設計手法との相性も良さそうな印象 State 周りはReactlink を使うのが正解な気がする 他にもngAnimate 風にアニメー ションの指定ができるMixin があったり面白そう JSX の取っ付きづらさに慣れると使いやすい https://github.com/cancer/react-SavageApp
ご清聴ありがとうございました