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
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
110
0
Share
VueエンジニアがReactを触って感じた_設計の違い
Reactの基本3機能について、Vueと比較して、設計の違いを再確認するためのLT発表資料です。
kouki.miura
April 08, 2026
More Decks by kouki.miura
See All by kouki.miura
Laravel入門:最小構成で理解するMVC
koukimiura
0
100
VueSapporo#1
koukimiura
0
40
Vue.jsを10分で再定義する
koukimiura
1
49
なぜVue開発は速いのか?-Vite入門
koukimiura
0
64
Vueでつくるシングルページアプリケーション(SPA)入門
koukimiura
0
42
スライドもVueで書く時代? Slidev入門
koukimiura
0
49
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
250
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
160
生成AIを "同僚" として使う ~設計・実装・ログ解析の実践例~
koukimiura
0
68
Other Decks in Programming
See All in Programming
Go_College_最終発表資料__外部公開用_.pdf
xe_pc23
0
110
How to stabilize UI tests using XCTest
akkeylab
0
150
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
310
Java 21/25 Virtual Threads 소개
debop
0
320
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
230
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
280
Coding as Prompting Since 2025
ragingwind
0
650
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
250
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
670
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
920
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
820
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
370
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
170
How STYLIGHT went responsive
nonsquared
100
6k
Faster Mobile Websites
deanohume
310
31k
It's Worth the Effort
3n
188
29k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
230
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
640
WCS-LA-2024
lcolladotor
0
510
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
250
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! / ご清聴ありがとうございました