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
JSXで作るDSL / jsx-dsl
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mottox2
September 04, 2019
Technology
2.5k
1
Share
JSXで作るDSL / jsx-dsl
gifteeさんで行われた『フロントエンド Night #1』のLT資料です。
https://giftee.connpass.com/event/141943/
mottox2
September 04, 2019
More Decks by mottox2
See All by mottox2
つくり方を変えていく | change-how-we-build
mottox2
2
1.2k
もう一歩進めたい OG画像の動的生成
mottox2
7
2.5k
なぜコピペで使うコンポーネント集を利用するのか?
mottox2
8
7.5k
UIコンポーネントライブラリをうまく使うためにできること / components-with-designer
mottox2
7
4k
Figma Plugin公開までの壁を乗り越える
mottox2
3
4.1k
Puppeteerでつくる画像と動画 / images and videos made with puppeteer
mottox2
0
770
手触りのよいウェブを考える / better-mobile-web
mottox2
3
2k
組織と権限とSlack App / slack-app-with-roles
mottox2
1
720
SSRを避けるためにやっていること / ssr-alternative
mottox2
9
3.3k
Other Decks in Technology
See All in Technology
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
1
210
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
1
130
LookerとADKで作る社内AIエージェント
chanyou0311
0
290
Personal knowledge bases using LLM
lycorptech_jp
PRO
0
130
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.7k
M&Aで増え続けるプロダクトに少数QAはどう立ち向かうか─GENDAが挑む、全員で取り組む品質標準化戦略 / GENDA Tech Talk #4
genda
0
310
React Compiler導入の効果と運用の工夫
kakehashi
PRO
3
310
TypeScriptで実現する既存APIを活用したリモートMCPサーバー構築 / TSKaigi 2026
soarteclab
1
180
layerx-fde-practices
cipepser
1
290
AsyncStreamでマルチブロードキャストを実装する
1mash0
1
180
[4] Power BI Deep Dive [2026-05]
ohata_bi
0
110
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
360
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
350
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Design in an AI World
tapps
1
210
Utilizing Notion as your number one productivity tool
mfonobong
4
300
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
First, design no harm
axbom
PRO
2
1.2k
BBQ
matthewcrist
89
10k
Evolving SEO for Evolving Search Engines
ryanjones
0
200
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
150
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
520
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Ethics towards AI in product and experience design
skipperchong
2
280
Transcript
2019.09.04 フロントエンド Night #1 / @mottox2 JSXでつくるDSL
フロントエンドエンジニア(Web/iOS) Gatsby, Gridsome, Next.js, etc お仕事 Watching mottox2 @ ؿٔ٦ٓٝأ8FCؒٝآص،
⾃⼰紹介
#ϑϩϯτΤϯυNight DSL • DSL(Domain Specific Language) • ドメインに特化した⾔語 • 例:
itamae • Ruby製のプロビジョニングツール
#ϑϩϯτΤϯυNight JSX • JavaScript の構⽂の拡張 • ⾒⽅によっては『Viewを記述するためのDSL』 • BabelによってReact.createElementに変換して使っている
#ϑϩϯτΤϯυNight JSXから他形式への変換 XML, JSON, PlainText などのフォーマット output input
• 技術同⼈誌によく使われるフォーマット。ワンソースでPDFやEPUBに変 換が可能。 jsx-review: JSXをRe:VIEW形式に変換する GitHub mottox2/jsx-review
#ϑϩϯτΤϯυNight 1. コンポーネントの定義 • コンポーネントを定義、TypeScriptの型を付けておくとよい。
#ϑϩϯτΤϯυNight 2. JSXをJSONへ変換 • react-test-rendererを使うと、Reactコンポーネントをオブジェクトに変 換できる。
#ϑϩϯτΤϯυNight 3. JSONをRe:VIEWへ変換 • Reactコンポーネントから⽣成したオブジェクトをtypeごとに変換する。
#ϑϩϯτΤϯυNight 4. 表⽰するメソッドを実装 • Reactコンポーネントから⽣成したオブジェクトをtypeごとに変換する。
#ϑϩϯτΤϯυNight 利点: TS/JSDocの補完が効く
#ϑϩϯτΤϯυNight 利点: TSの型チェックが効く
#ϑϩϯτΤϯυNight まとめ • JSXをベースにHTML以外のアウトプットを想定したDSLが作れる。 • React + TypeScriptで磨かれたDXがそのまま流⽤できる。 • 補完
+ 型チェック + フォーマット + ドキュメント • VSCode(No Plugin)
技術書典7で頒布します
Thank you! 2019.09.04 フロントエンド Night #1 / @mottox2