Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
VueエンジニアがReactを触って感じた_設計の違い
Search
kouki.miura
April 08, 2026
Programming
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
VueエンジニアがReactを触って感じた_設計の違い
Reactの基本3機能について、Vueと比較して、設計の違いを再確認するためのLT発表資料です。
kouki.miura
April 08, 2026
More Decks by kouki.miura
See All by kouki.miura
診療情報提供書 × HL7 FHIR ~医療情報の標準化を実際に実装してみる~
koukimiura
0
62
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
160
VueSapporo#4
koukimiura
0
40
Vue3_Capacitorでモバイルアプリ開発
koukimiura
0
43
Vueが軽く&速くなる!Vapor Modeを試してみた
koukimiura
0
61
Vue3.6.0-rc_CHANGELOG読み合わせ
koukimiura
0
53
医療DXって何?~電子カルテ標準仕様まで10分で理解する~
koukimiura
1
110
アプリ開発者が知っておくべき『トランザクション分離レベル』とRead Committed の罠
koukimiura
0
120
フルスタックTypeScript入門 ~Hono RPCとZodで実現する型共有~
koukimiura
0
82
Other Decks in Programming
See All in Programming
速習iPhone Duo対応
yuukiw00w
2
910
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.5k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
440
SREの越境 / SRE Collaboration
y0hgi
2
290
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
310
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.2k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
400
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
150
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
340
Webの地図
yosuke_furukawa
PRO
6
5k
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
2
850
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
It's Worth the Effort
3n
188
29k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Balancing Empowerment & Direction
lara
6
1.3k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Site-Speed That Sticks
csswizardry
13
1.5k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
310
Marketing to machines
jonoalderson
1
5.8k
Transcript
LIGHTNING TALK / 5 min Vueエンジニアが Reactを触って 感じた “設計の違い ”
kouki.miura / ドゥウェル株式会社 (NIHON KOHDEN Group) 2026.04.08 / React .study vol.01@sapporo
01 / SELF INTRODUCTION VueエンジニアがReactを触って感じた設計の違い / kouki.miura 自己紹介 kouki.miura Vue.js
Engineer COMPANY ドゥウェル株式会社 NIHON KOHDEN Group STACK TypeScript / Vue.js / Node.js COMMUNITY VueSapporo, さっぽろ医療 IT勉強会(MIT_sapporo) Vue.js community in Hokkaido
02 / GOAL VueエンジニアがReactを触って感じた設計の違い / kouki.miura このLTのゴール Vue と React
の 設計思想 の違いを理解する コードの書き方ではなく、なぜそう書くのか?に注目
03 / CONCLUSION (先に結論) VueエンジニアがReactを触って感じた設計の違い / kouki.miura 結論 先に答えだけ言うと── React
自由 / 設計は自分で決める ▪ ライブラリ寄り 必要なものは自分で組む ▪ UI = 関数 状態を渡すと画面が返る ▪ プロジェクトの裁量大 ベストプラクティスは現場次第 “Just the View Layer.” Vue 統一感 / 設計が用意されている ▪ フレームワーク寄り 公式が道筋を示す ▪ テンプレート + リアクティブ 直感的な書き味 ▪ 推奨パターンがある チームで揃えやすい “The Progressive Framework.”
04 / DESIGN PHILOSOPHY VueエンジニアがReactを触って感じた設計の違い / kouki.miura 設計思想の違い React ライブラリ寄り
UI = 関数 状態を入れて画面を返す純粋関数の発想 最小コア + エコシステム ルーティング/状態管理は別ライブラリ プロジェクトの裁量大 構成・命名・パターンは現場で決める Vue フレームワーク寄り テンプレート + リアクティブ HTMLに近い構文 + ref / reactiveで自動追従 推奨パターンがある 公式ルータ/状態管理/スタイルガイドが揃う 書き方が揃いやすい .vue 単一ファイル構成が標準
05 / STATE VueエンジニアがReactを触って感じた設計の違い / kouki.miura 状態の持ち方 — setState /
ref 「カウンタを1つ増やす」だけでも、書き方の発想が違う React / useState import { useState } from 'react' export const Counter = () => { const [count, setCount] = useState(0) // 値ではなく『更新関数』を呼ぶ return ( <button onClick={() => setCount((count) => count + 1)} > {count} </button> ) } Vue / ref <script setup lang="ts"> import { ref } from 'vue'; // .value で読み書きする変数 const count = ref(0); </script> <template> <button @click="count++"> {{ count }} </button> </template> POINT React は『次の状態を返す』、 Vue は『値を直接書き換える』。リアクティブの入口が違う。
06 / VIEW VueエンジニアがReactを触って感じた設計の違い / kouki.miura ビューの書き方 — JSX /
SFC Reactは『JSの中にUI』、Vueは『1ファイルにHTML/JS/CSS』 React / .tsx type Props = { name: string } export const Hello = ({ name }: Props) => { // JSは式、JSXもただの式 return ( <div className="card"> <h1>Hello, {name}!</h1> </div> ) } Vue / .vue (SFC) <script setup lang="ts"> defineProps<{ name: string }>(); </script> <template> <div class="card"> <h1>Hello, {{ name }}!</h1> </div> </template> <style scoped>.card { padding: 1rem; }</style> POINT React は『JS世界の延長』、Vue は『HTML世界の延長』。どちらも一長一短。
07 / SIDE EFFECTS VueエンジニアがReactを触って感じた設計の違い / kouki.miura 副作用 — useEffect /
onMounted・watch マウント時のフェッチ + 値の変更検知を例に React / useEffect import { useEffect, useState } from 'react' interface User { id: number name: string } export const User = ({ id }: { id: number }) => { const [user, setUser] = useState<User | null>(null) // 依存配列で『いつ実行するか』を制御 useEffect(() => { fetch(`/api/users/${id}`) .then((r) => r.json()) .then(setUser) }, [id]) return user } Vue / onMounted + watch <script setup lang="ts"> import { ref, watch, onMounted } from 'vue'; const props = defineProps<{ id: number }>(); const user = ref(null); // 役割ごとにAPIが分かれている const load = async () => user.value = await (await fetch( `/api/users/${props.id}`)).json(); onMounted(load); watch(() => props.id, load); </script> POINT Reactは1つのフックに集約/Vueは『初回マウント』『監視』が別 APIに分かれる。
08 / SUMMARY VueエンジニアがReactを触って感じた設計の違い / kouki.miura まとめ どちらが良い/悪いではなく、思想が違う React 自由
設計は自分で決める → 柔軟さと引き換えに、判断コストを払う Vue 統一感 設計が用意されている → 揃えやすい代わりに、レールに乗る前提 Thank you! / ご清聴ありがとうございました