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
make_frontend_properly_spa.pdf
Search
mtblue81
November 22, 2018
Programming
0
2.5k
make_frontend_properly_spa.pdf
mtblue81
November 22, 2018
Tweet
Share
More Decks by mtblue81
See All by mtblue81
3Dアバターを楽しもう!@burikaigi2024
mtblue81
1
680
手触りの良いUIを 名刺表現の巻
mtblue81
0
170
JavaScriptメタプログラミング勉強会 #metapro_es
mtblue81
0
390
Other Decks in Programming
See All in Programming
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
530
Modern Angular: Renovation for Your Applications
manfredsteyer
PRO
0
200
Vitest Browser Mode への期待 / Vitest Browser Mode
odanado
PRO
2
1.7k
Outline View in SwiftUI
1024jp
1
110
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
10
4.5k
推し活の ハイトラフィックに立ち向かう Railsとアーキテクチャ - Kaigi on Rails 2024
falcon8823
6
2.1k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
240
Vue.js学習の振り返り
hiro_xre
2
130
推し活としてのrails new/oshikatsu_ha_iizo
sakahukamaki
3
1.6k
WEBエンジニア向けAI活用入門
sutetotanuki
0
300
Vue SFCのtemplateでTypeScriptの型を活用しよう
tsukkee
3
1.5k
qmuntal/stateless のススメ
sgash708
0
120
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Making the Leap to Tech Lead
cromwellryan
132
8.9k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
150
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Measuring & Analyzing Core Web Vitals
bluesmoon
1
39
A Modern Web Designer's Workflow
chriscoyier
692
190k
The Language of Interfaces
destraynor
154
24k
Transcript
> ϑϩϯτΤϯυΛ͖ͪΜͱ41"ʹ͍ͨ͠ʂ 4BOTBOº.5FDI/JHIUʙϨΨγʔγεςϜʹཱ͔ͪ͑ʂʙ
!NU@CMVF !.U#MVF
None
None
None
None
+49ԽϩδοΫ ίϐʔ
JSX ES5 ES5 ϓϦίϯύΠϧ
ίϯϙʔωϯτ άϩʔόϧͳελΠϧ 結果...
理想 •コンポーネントは独⽴させたい •構成 •スタイル •ロジック •(SSRなどを除いて) SPAにアプリサーバはいらない ファイルサーバにアップロードするだけ 8FC$PNQPOFOUT
改善プラン 1.CSSファイルをコンポーネント(JS)に合わせる 2.CSSクラス名でスタイルの影響範囲を抑える 3.JS,CSSをどちらもnode.js側でビルドする
CSSファイルをコンポーネント(JS)に合わせる 1.まずは空ファイルでJSと同名CSSを準備 2.新規作成コンポーネントではスタイルはそこに B@DPNQPOFOUKT B@DPNQPOFOUDTT
CSSクラス名でスタイルの影響範囲を抑える 1.ファイルパスと同等のクラス名を定義する (BEMのBlock相当) 2.コンポーネントJSXの最外でクラス名を付与 B@DPNQPOFOUKT B@DPNQPOFOUDTT
CSSクラス名でスタイルの影響範囲を抑える 1.ファイルパスと同等のクラス名を定義する (BEMのBlock相当) 2.コンポーネントJSXの最外でクラス名を付与 B@DPNQPOFOUKT B@DPNQPOFOUDTT SFOEFS \ SFUVSO
EJWDMBTT/BNFbB@DPNQPOFOU` ʜ EJW B@DPNQPOFOU\ CBDLHSPVOEHSBZ ʜ MJOUͰωετΛ੍ݶ ^
JS,CSSをどちらもnode.js側でビルドする
JS,CSSをどちらもnode.js側でビルドする \ lCVOEMFKTzlCVOEMFYYYYKTz lCVOEMFDTTzlCVOEMFZZZZDTTz ʜ ^ CVOEMFYYYYKT CVOEMFZZZZDTT
つらかったところ 1.CSSファイルをコンポーネント(JS)に合わせる 2.CSSクラス名でスタイルの影響範囲を抑える 3.JS,CSSをどちらもnode.js側でビルドする
つらかったところ طଘͷڊେͳCSSͱίϯϙʔωϯτΛʹΒΊͬ͜͠ͳ͕Β CSSׂΛ͍ͯͬͨ͠ ͓͓Αͦ2ϲ݄͘Β͍ʁ ؆қతͳϨάϨογϣϯ߲Λઃ͚ͯνΣοΫ ڞ௨ͳ෦Ͱ͖Δ͚ͩSCSSͷmixinԽͯ͠ಀ͛ΔͳͲ
まとめ 改善プランをやってみたら - コンポーネント指向での開発ベースができてきた - ビルドプロセスをRailsからNodeに移せた
でもまだまだ道半ば ੩తܕ͚ 443 #'' &&ςετ
ͦͷଞʹReact͇ReduxͰͷʹ͍ͭͯ աڈͷεϥΠυͰհ͍ͯ͠·͢ IUUQTXXXTMJEFTIBSFOFU4IVIFJ"PZBNBSFBDUSFEVYBUFJHIU IUUQTTQFBLFSEFDLDPNNUCMVF KBWBTDSJQUNFUBQVSPHVSBNJOHVNJBORJBOHIVJOVNCFSNFUBQSPFT
None