Reactアニメーション事始め
by
takanorip
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
React アニメーション事始め Takanori Oki 第1回 React.js 導入事例 @ 弥生
Slide 2
Slide 2 text
目次 • 自己紹介 • 導入 • 主要な実装方とポイント • まとめ
Slide 3
Slide 3 text
自己紹介
Slide 4
Slide 4 text
自己紹介 • 大木尊紀( @takanorip ) • フロントエンドエンジニア (ウェブサイト制作とか) • 株式会社スマートドライブ(2017.06.01~) • 最近の悩み:体重の増加
Slide 5
Slide 5 text
Reactでアニメーション
Slide 6
Slide 6 text
要件・きもち
Slide 7
Slide 7 text
要件・きもち • 実装したいもの • リスト追加、削除時のアニメーション • メニューの開閉など • きもち • シンプルに実装したい
Slide 8
Slide 8 text
普通のアニメーション • CSSアニメーション (transition、keyframesなど) • jQuery、velocity.jsなどのライブラリを使用 • DOMをゴリゴリいじる感じのやつ
Slide 9
Slide 9 text
Reactのつらみ
Slide 10
Slide 10 text
つらみ • jQuery使えない • DOM参照つらい • DOMをいじるのはVirtualDOM経由
Slide 11
Slide 11 text
実装方法 1. stateを更新する方法 2. react-transition-group 3. ライブラリを使用
Slide 12
Slide 12 text
stateを更新する方法
Slide 13
Slide 13 text
stateを更新する方法 • stateを更新してマルチクラスの付け替え • メニューの開閉などウェブサイトでよくある 動きを実装する時使える • React v15.0からDOMのCSSAnimationEvent をトリガーできるようになった
Slide 14
Slide 14 text
Actionを検知 state更新 アニメーション classを付け替え Actionを検知 class付け替え アニメーション jQueryとか React
Slide 15
Slide 15 text
要素の追加、削除は苦手 • アニメーションが終わってから要素を削除し ないといけない • 自前で実装するのは難しい
Slide 16
Slide 16 text
削除イベント発火 アニメーション開始 アニメーション終了 DOM削除 DOM追加 アニメーション開始 アニメーション終了 この間DOMは 残しておく必要 あり
Slide 17
Slide 17 text
react-transition-group
Slide 18
Slide 18 text
react-transition-group • 公式のアドオン • CSSTransitionGroupとTransitionGroup • 以前はReactTransitionGroupと ReactCSSTransitionGroupがあったが、 React v15.5.0で非推奨になってしまった (使い方などは特に変わらない)
Slide 19
Slide 19 text
CSSTransitionGroup {items}
Slide 20
Slide 20 text
CSSTransitionGroup • CSSアニメーションさせるときに使う • コンポーネントの追加、削除時にclassを 付与する • 簡単にアニメーションできる • ロジック管理できない
Slide 21
Slide 21 text
ライブラリを使用
Slide 22
Slide 22 text
ライブラリを使用 • CSSより複雑な動き表現できる • アニメーションのロジックを管理できる • シンプルに使うことができる
Slide 23
Slide 23 text
主なライブラリ • react-motion • velocity-react • react-animations • react-tween-state
Slide 24
Slide 24 text
ライブラリについて詳しくは こちらの記事を参照! Reactのアニメーションを 攻略する
Slide 25
Slide 25 text
応用編
Slide 26
Slide 26 text
応用編 • Reduxを使ってアニメーションのロジックを 管理する • 複雑なアニメーションもできる • アニメーションをDOMから分離できるので、 TweenMaxなど通常使用しているライブラリ を使うこともできるようになる
Slide 27
Slide 27 text
まとめ • Reactとアニメーションは相性悪いけどやりよ うはたくさんある • ライブラリはそれぞれできることが違うので 確認必要 • もっと複雑なアニメーションを実装する時は Redux使って実装する