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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
69
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
180
VueSapporo#4
koukimiura
0
45
Vue3_Capacitorでモバイルアプリ開発
koukimiura
0
46
Vueが軽く&速くなる!Vapor Modeを試してみた
koukimiura
0
76
Vue3.6.0-rc_CHANGELOG読み合わせ
koukimiura
0
56
医療DXって何?~電子カルテ標準仕様まで10分で理解する~
koukimiura
1
110
アプリ開発者が知っておくべき『トランザクション分離レベル』とRead Committed の罠
koukimiura
0
120
フルスタックTypeScript入門 ~Hono RPCとZodで実現する型共有~
koukimiura
0
84
Other Decks in Programming
See All in Programming
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
450
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
340
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
350
Simple Storage Service(S3) is not simple
iwatsukayura
0
210
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
710
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
160
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
310
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
120
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
20
21k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
130
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
300
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
260
Navigating Weather and Climate Data
rabernat
0
550
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Design in an AI World
tapps
1
350
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
How GitHub (no longer) Works
holman
316
150k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
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! / ご清聴ありがとうございました