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ルーター選定術 2020年のファイナルアンサー
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hanakla
December 18, 2020
Programming
2
5k
Reactルーター選定術 2020年のファイナルアンサー
Hanakla
December 18, 2020
Tweet
Share
More Decks by Hanakla
See All by Hanakla
ピクシブの Contentful 利用事情 (2021)
hanakla
2
430
動画編集ソフトを作るための基礎知識
hanakla
1
420
Research and Development of "Delir" at Nov, 2016
hanakla
0
160
Other Decks in Programming
See All in Programming
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
320
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
990
MUSUBIXとは
nahisaho
0
140
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
210
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
630
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
220
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Marketing to machines
jonoalderson
1
4.6k
Become a Pro
speakerdeck
PRO
31
5.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Transcript
None
None
⇢ ⇠
None
―― “僕が知らないだけで、他の選択肢もあるかもしれない” 真実を調べるため、我々はAmazon データセンターの奥地へと向かった
None
None
None
ほとんどreact-routerじゃねぇか !!!!!!!!!!!1!!
None
僕がルーターに欲しい要件を改めて整理する 1. パスに対応するコンポーネントの呼び出し 2. (SSR時) コンポーネント呼び出し前のfetch処理 - 主にお前のためだぞTwitterくん!!(OGPを頑張って刷る音) optional: 1.
海外SEOのために言語別のURLを提供したい ( /en/users と /ja/users に対して /users のコンポーネントを呼んで欲しい) 2. URLビルダーがついてると便利 (パスパラメータを型安全にしたい + 言語別URL対応も出来てると気持ちがいい)
それに対してReactのルーターの現状 大体有力そうなのはこの3つ react-router - *CSRオンリーなら*有力 - 事前fetchが必要なSSRとなるとreact-router-configなどを組み合わせて 自力で頑張る感じになる(知見なさすぎて開発初期はクソしんどかった) rocon -
*CSRオンリーなら*有力 - 型安全かつReactの外にルーティング定義があるので、react-routerよりSSRしやすそう - 事前fetchに対する対応は特になさそう @reach/router - @reach/
[email protected]
から
[email protected]
にマージされたのでおわり。
None
SSRく〜ん?????? (自プロダクトからSSRが外せない人の顔)
Q. SSRもういらなくない? A. 対Googleならそうかもしれないが ウチはTwitterくん向けのog:imageの設定に必要 TwitterのクローラーがJSの実行にまだ対応していない ツイッターく〜〜ん????(気持ちはわかるよ)
リピートアフターミー 「og:imageなきものはTwitterコンテンツにあらず」 (これは極端な思想です)
SSR時は事前fetchが必要 (React SuspenseはまだSSRを考慮できてない)
現代のReactアプリのfetch
現代のReactアプリのfetch 2020年でReactにおけるfetchの考え方はかなり変わった - Next.js ならファイルベースルーティングを勝手にやってくれる - getServerSideProps によってSSRのレンダリング前にfetch出来る - CSR:
useSWR などReact配下でのFetch手段の充実 - CSRだけでいいならreact-routerでもroconでもなんでも相性良い - 管理画面とかCSR onlyでいいならuseSWRとか使ったほうがredux一周回すより手軽 - 素のReduxとかで出来てるSSRなアプリは? - そんなの世界のどこにもきっとないよ! 絶対にそうだよ!(ぐるぐる目)
きっと…きっと……
ケツロン - まずNext.jsに乗っかることを考えろ!!!(唐突) - Next.jsは十分に成長した。足回りについては脳死ビリティが十分高い → その分プロダクト固有の設計や実装改善にリソースを割こう! 本質から逃げるな!!! - SSRもCSRもSSGも対応出来てすごい!!
- 自前構成は変更に強いが再発明の時間がつらいぞ!! - if SSR必要? - NO: react-router OR Rocon と useSWR とかを組み合わせればおk!!!!! - YES → if 新規プロジェクト? - YES: Next.jsを使って楽になれ! みんなもやってるよ Next.js + Fleur構成はマジで型安全祈願コードが少なくて楽 - NO: 誰もお前を救わない。 僕と一緒にreact-routerをこねくり回してつらい思いをしろ!!!!!!!
はい。
シンドすぎワロタ (笑ってない)
……い……なら
脳内の悪魔スマイルお姉さん 「ないなら自分で作ればいいじゃない?」
なるほどね(いつもの)
ということで…
本日 `@fleur/froute` をリリースしました! @fleur/froute (フルート) - SSRできる - かなり型安全(Template Literal
Types対応するかも) - URL内パラメータ周りはめちゃくちゃ堅い(オプショナルとかにまだ未対応…) - 多言語対応の要件に耐えられる(Custom Route Resolution) - 型安全URLビルダー - ライブラリ非依存 (Redux でも Fleur でも組み合わせ可能!) Next.js使えるならやっぱりいらないと思うけど そうじゃないアナタに僕からの2020年のファイナルアンサーです。
かなりテストしまくったので 割と動くはず
ドキュメントはReadmeに 大体書いてある 困ったら.spec.tsxでも見てくれ
github.com/fleur-js/froute
2021年はCSRが来て!!!! (懇願) いい子はNext.jsを使え! オレは悪い子だから Reduxとfrouteをブン回すぜ!(絶望) (新規プロジェクトでreact-routerを使うことはもうないでしょう…)
ありがとうございました!!