Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
React と 画像
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ymrl
March 11, 2016
Programming
0
1.4k
React と 画像
途中で出てくるデモはこちらです
http://ymrl.github.io/lgtm-editor/
ymrl
March 11, 2016
Tweet
Share
More Decks by ymrl
See All by ymrl
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
4
1.3k
全社でアクセシビリティに取り組む / Company-wide Accessibility Initiatives
ymrl
1
750
デザイナーがTSKaigiでWAI-ARIAの話をしてみて / Speaking as a Designer: WAI-ARIA at TSKaigi
ymrl
0
490
TypeScriptとReactで、WAI-ARIAの属性を正しく利用する / Fixing WAI-ARIA Typing in React with TypeScript
ymrl
1
710
がんばらないアクセシビリティ / Accessibility Without the Struggle
ymrl
0
770
Webサイトのアクセシビリティにどう向き合う? / How Should We Approach Web Accessibility?
ymrl
0
140
いま求められるソフトウェアのアクセシビリティ / Essential Accessibility in Software Today
ymrl
1
1.5k
アクセシビリティを意識したプロダクトづくり / Creating Products with Accessibility in Mind
ymrl
0
24k
「Webアプリケーションアクセシビリティ」著者の会社 (freee, サイボウズ, SmartHR) での取り組みは実際どんな感じ?
ymrl
3
24k
Other Decks in Programming
See All in Programming
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
130
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
230
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
130
How to stabilize UI tests using XCTest
akkeylab
0
140
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
130
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
440
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
390
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.3k
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
190
CSC307 Lecture 15
javiergs
PRO
0
260
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
160
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1.1k
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
950
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
It's Worth the Effort
3n
188
29k
Building AI with AI
inesmontani
PRO
1
820
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
400
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
220
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
300
Fireside Chat
paigeccino
42
3.8k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Transcript
Reactͱը૾ Gotanda.js #3 @ymrl
ςΩετ ࣗݾհ ▸ @ymrl (Twitter, GitHub, etc…) ▸ freeeͱ͍͏ձࣾͰڅ༩ܭࢉαʔϏεΛ࡞͍ͬͯ·͢
ςΩετ LGTMize ▸ 1΄Ͳલʹࡶʹ࡞ͬͨChrome֦ு ▸ ը૾ϏσΦΛӈΫϦοΫͯ͠LGTMͬͯจࣈΛࡌͤͯอଘ ▸ ࣾͷԁͳίϛϡχέʔγϣϯʹʢݸਓతʹʣศར
http://bylines.news.yahoo.co.jp/kohyoungki/20151012-00050386/
ςΩετ Canvasཁૉ ▸ ͍ΘΏΔHTML5ͷՖܗͬΆ͍ͭ ▸ 2࣍ݩϏοτϚοϓը૾͕ѻ͑Δ ▸ ศརͳΑ͏Ͱ͚ͬ͜͏໘͍͘͞ ▸ ྑ͘ѱ͘ϏοτϚοϓ
react-canvas
ςΩετ react-canvas ▸ ReactͰը૾͕࡞ΕΔͧʂʂʂ ▸ Textͱ͔Imageͱ͔Layerͱ͔ͬͯը૾࡞ΕΔ ▸ CSSͬΆ͍ObjectΛͯ͠ελΠϧΛௐ ▸ ຊདྷߴͳಈ࡞ͷUIΛ࡞ΔͨΊʹ࡞ΒΕͨͬΆ͍งғؾ
▸ mouse/touchܥΠϕϯτ͍͔࣮ͭ͘͞ΕͯΔ
None
None
DEMO
إೝࣝ
إʹจࣈ͕͔͔ Δͷආ͚͍ͨ
ςΩετ ccv ▸ CݴޠͷϥΠϒϥϦ͚ͩͲJSʹҠ২͞ΕͯΔ ▸ إೝࣝͰ͖Δ ▸ Web Worker͑Δʢͬͯͳ͍ʣ ▸
npmͱ͔ීٴͯ͠ͳ͍ࠒͷϒπͳͷͰదʹམͱ͖ͯͨ͠ ϑΝΠϧΛஔͯ͠͏
http://www.asahi.com/articles/ASHB75GGFHB7UTFK00G.html
http://www.asahi.com/articles/ASHB75GGFHB7UTFK00G.html
None
None
ςΩετ إΛආ͚Δ ▸ ݩͷը૾͔ΒإͷҐஔͰۣܗΛ͍ͬͯͬͨΓͷ͏ͪ Ұ൪͍ॴʹஔ ▸ ReactCanvasͷϊʔυΛ͢ͱനࠇԽ͞Εͯ͠·ͬͨΓ͢Δ ▸ ͍ͬͯ͏͔͜Ε͋Μ·ΓReactؔͳ͍ ▸
ؾܰʹCanvasΛॻ͖ͤΔͷྑ͍
GIF
animated GIF
ςΩετ gif ▸ Canvasཁૉʹॻ͖ग़͢ͱ1ίϚ ▸ toDataURL() Ͱ͖ͳ͍ ▸ ʢαϒϚϦϯಛڐͬͯͲ͏ͳͬͨΜͰ͚ͨͬ͠ʣ
ςΩετ readwrite-gif ▸ EncoderͱDecoder͕ೖͬͯΔ ▸ 1ίϚͣͭImageDataͰಡΈग़ͤͨΓ͢Δ ▸ Encoder gif.jsify ͷ΄͏͕ଟػೳ͔……
▸ ίϚ͝ͱʹ͞Λม͑ͨΓͰ͖ͦ͏
GIF ΛಡΉ
None
None
࠶ੜ
None
શϑϨʔϜඳը ͠ͳ͖Όμϝ
None
ग़ྗ
ςΩετ શϑϨʔϜͷը૾σʔλ͕΄͍͠ ▸ setState()ͰϑϨʔϜΛ1ͭͣͭඳը͍ͯ͘͠ͷ͍͠ ▸ ࠶ඳըͷλΠϛϯά͕Α͘Θ͔Βͳ͍ ▸ ࠶ੜ͠ͳ͕Βඳը݁ՌΛอଘ͚ͯ͠Α͍ͷͰʁ ▸ componentDidUpdate
ͰదʹಥͬࠐΜͰ͍͘
None
None
ͳΜͱ͔ग़ͤΔΑ ͏ʹͳͬͨͧ
ςΩετ ·ͱΊ ▸ animated GIFͷ૬खΛ͢ΔͷͭΒ͍
͝ਗ਼ௌ͋Γ͕ͱ ͏͍͟͝·ͨ͠