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
Game Widget Library using React
Search
Yosuke Furukawa
PRO
March 01, 2016
Programming
0
1.6k
Game Widget Library using React
React meetup 第三回の発表資料です
Yosuke Furukawa
PRO
March 01, 2016
Tweet
Share
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
3.7k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
190
Removing Corepack
yosuke_furukawa
PRO
9
1.4k
JavaScript Runtime とはなにか
yosuke_furukawa
PRO
15
2.6k
Strip Types と Storage
yosuke_furukawa
PRO
4
370
Module Harmony について
yosuke_furukawa
PRO
3
1.6k
LTのやり方
yosuke_furukawa
PRO
16
2.3k
AppRouter Panel Talk
yosuke_furukawa
PRO
3
750
Node.js v22 で変わること
yosuke_furukawa
PRO
13
5.7k
Other Decks in Programming
See All in Programming
昭和の職場からアジャイルの世界へ
kumagoro95
1
350
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
0
170
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
180
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
150
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
110
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
270
Pulsar2 を雰囲気で使ってみよう
anoken
0
230
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
240
『品質』という言葉が嫌いな理由
korimu
0
160
Immutable ActiveRecord
megane42
0
130
Conform を推す - Advocating for Conform
mizoguchicoji
3
680
CNCF Project の作者が考えている OSS の運営
utam0k
5
690
Featured
See All Featured
Side Projects
sachag
452
42k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Automating Front-end Workflow
addyosmani
1367
200k
Making Projects Easy
brettharned
116
6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
We Have a Design System, Now What?
morganepeng
51
7.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
4 Signs Your Business is Dying
shpigford
182
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
BBQ
matthewcrist
86
9.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
YesSQL, Process and Tooling at Scale
rocio
171
14k
Transcript
Game Widget Library using React @yosuke_furukawa
Twitter: @yosuke_furukawa Github: yosuke-furukawa
New Logo
New Node.js Logo is here
Recent works in my company • front-end / server-side engineer
• creating apps using Electron • creating widget library using React
Recent works in my company • front-end / server-side engineer
• creating apps using Electron • creating widget library using React
Demo note: please do not share in SNS….
Our stack • Babel • React • Facebook / flux
• css-modules (post-css) • webpack
Our stack • Babel • React • Facebook / flux
• css-modules (post-css) • webpack
tackling CSS in React
ͳΔ͘1ͭͷJSϑΝΠϧͰ ͔݁ͤͨͬͨ͞ɺJS, CSS͕ ෳʹ͔ΕΔΑ͏ͳঢ়گΛ ආ͚͔ͨͬͨɻ
ήʔϜͷதͰಡΈࠐ·ΕΔͷ Ͱɺcss ͷclassNameڝ߹Λ ͔͗ͨͬͨɻ
We try to choose • CSS in React (using style
attribute) • Radium • css-modules
We try to choose • CSS in React => media
query pseudo attribute ɺ͍͍ͨػೳ͕͑ͳ͔ͬͨɻ • Radium => media query ͳͲରԠ͍ͯ͠Δͷͷɺ Ұ෦ͷpseudo ଐੑͱ͔͕͑ͳ͍ɺยखམͪͩͬͨ • css-modules => CSSͷػೳ͕ී௨ʹ͑ͨɻclass໊ ͷڝ߹શʹ͛ͳ͍͕ɺ͋Δఔ͛Δɻ
css-modules :local(.localClass) { color: green; } :local(.subClass) { color: red;
} :global(.globalClass) { color: blue; } ._23_aKvs-b8bW2Vg3fwHozO { color: green; } ._13LGdX8RMStbBE9w-t0gZ1 { color: red; } .globalClass { color: blue; } http://morishitter.hatenablog.com/entry/2015/09/28/103334
ϑΝο࠷ߴΜ͚ɺ શ෦ΫϦΞͩʂʂ
ൃੜ…
widget library ඞͣήʔϜͷ ϖʔδΑΓઌʹग़ͯͳ͍ͱ͍͚ ͳ͍ͷͰɺ ϨϯμϦϯά্ඞਢͷϨΠΞτ ʹͳΔɻ
scriptΛಡΈࠐΉҐஔ͕ॏཁʹ ͳΔ <script src=“widget.js” /> ͜ΕΛͲ͜ͰಡΈࠐΉ͖͔ <html> <head> <!— ͜͜ͰಡΈࠐΉ?
—> <link rel=“stylesheet” href=“hoge.css”> <!— ͜͜ͰಡΈࠐΉ? —> </head> <body> <!— ͦΕͱɺ͜͜ͰಡΈࠐΉ? —> </body> </html>
ຊདྷ JS ϨΠΞτͱແ ؔͳ͜ͱ͕ଟ͍ͷͰ body ด͡λάͷ্Ͱఆٛ͢Δ͜ͱ ͕ଟ͍͕ɺ͜ͷ߹ css ͱ ಉ༷ͷҐஔʹඞཁʹͳΔ
ϥΠϒϥϦϨΠϠ͚ͩ͡Όղ ܾͰ͖ͳ͍ͷͰɺ͍ํͷυ Ωϡϝϯτʹ໌هɻɻɻ
ࠓେ͖ͳى͖ͯͳ͍ (∩´∀ʆ)∩ƂŖŘ
ͨͩ͠ • ͲΜͳΞϓϦέʔγϣϯ͜ͷΓํ͕ྑ͍ͱࢥΘͳ͍ɻ • JSͱCSSΛҰॹʹͨ͜͠ͱͰى͖Δଟ͍ɻ • cache ͕ޮ͔ͳ͍ͱ͔ • http2
࣌ʹͳͬͨΒͦͦฒྻͰऔͬͯ͜ΕΔͷʹͦͷྑ͞Λ ফͯ͠Δͱ͔ • ࠓճͷΑ͏ͳέʔεׂ͕ͱಛघͳͷͰͳ͍͔ɻ • ΈΜͳී௨ʹCSSΛॻ͖·͠ΐ͏ɻ
Our stack • Babel • React • Facebook / flux
• css-modules (post-css) • webpack
·͊ͬͺΓ ES2015 Θͳ ͍खͳ͍
2015ͳͷʹ·ͩ class Θ ͳ͍ͱ͔ɺtemplate string literals Θͳ͍ͱ͔ϓϥΠυ ͕ڐ͞ͳ͔ͬͨɻ
͋Μ·Γେͨ͠ى͖ͳ͔ͬ ͨ • Babel v6 Ͱੌ·͍͡σάϨ͕Ұճى͖ͯQA ͷਓୡશମͷख͕ࢭ·ͬͨɻɹ • ES2015 શવͷνʔϜʹਁಁͯ͠ͳ͍
͋Μ·Γେͨ͠ى͖ͳ͔ͬ ͨ • Babel v6 Ͱੌ·͍͡σάϨ͕Ұճى͖ͯQA ͷਓୡશମͷख͕ࢭ·ͬͨ(ͷͰɺv5ʹ͠ ͨɻ) • ES2015
શવͷνʔϜʹਁಁͯ͠ͳ͍
͜Ε·Ͱॻ͍ͯͨͷ͘͢͝ basic ͳ JavaScript prototype? ԿͦΕͳਓୡ
ٻΊΒΕΔڭҭ…
None
tower-of-babel νϡʔτϦΞϧΛ࡞ͬͯ ΈΜͳʹΒͤͨ
ͱΓ͋͑ͣॻ͚ΔΑ͏ʹ ͳͬͨ
ͨͩ͠ɻɻɻ
ES5 ͷڭҭ͕ͦͦ͞Εͯ ͳ͍ɻ
Array methodsΒͳ͗͢͞ Function.bindͱʁ
tower-of-es5 ͷػӡ…
ES2015 ͔࣌ͩΒͦ͜ɺ ES5ͪΌΜͱ֮͑ͯѹత
·ͱΊ
React / babel / post-css / flux Ͱ widget ϥΠϒϥϦΛ࡞ͬͯΈͨ
• ͍ΖΜͳήʔϜͰ༡Ϳ࣌ʹReact ͰϥΠϒϥϦ ͕ಈ͕࣌͘དྷΔ͔ • CSS in JS ࠓ css-modules͕ྑ͍ɺͨͩ͠༻ ๏༻ྔʹؾΛ͚ͭͯɻ • ES2015Λָ͠ΉͳΒɺES5͍ͭͰʹ͑Α͏
Thank you for listening