Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「React でいいじゃん」と思ってた私が、「Vue 熱いじゃん」ってなった話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

「React でいいじゃん」と思ってた私が、「Vue 熱いじゃん」ってなった話

リンクアンドモチベーション登壇資料(2026/9/15)
「React でいいじゃん」と思ってた私が、「Vue 熱いじゃん」ってなった話

非公式 Vue Fes Japan 2026 タイムテーブル解説会
#リンモチ #Vue #vuefes
===========================================
【株式会社リンクアンドモチベーション】
■イベントページ
 https://andpad.connpass.com/event/398631/
■お問合せ先
 [email protected]
■テックブログ
 https://link-and-motivation.hatenablog.com/
■開発組織の公式X
 https://x.com/LinkandM_dev
=============================================

More Decks by リンクアンドモチベーション

Transcript

  1. 自己紹介 渡邊美由貴(watanabe miyuki) 株式会社リンクアンドモチベーション エンゲージメントプロダクトユニット © Link and Motivation Group

    2 • 2025年新卒⼊社 • 現在は既存プロダクトの新規機能開発に従事 • #バーチャル街歩き
  2. 会社紹介 創業年⽉⽇|2000年4⽉7⽇ 上場市場 |東京証券取引所 プライム市場 従業員数 |約1,600名 (グループ全体) 売上 |415億

    (グループ全体) ※2025年12⽉期 事業内容 |組織改善クラウドの開発・提供 © Link and Motivation Group 3
  3. 気づき ① キャッシュを、考えなくなった React では、useMemo を使うかどうかいつも迷ってた React — 再実⾏を⽌める Vue

    — 再実⾏させる const total = useMemo( () => sum(items), [items] ); const total = computed( () => sum(items.value) ); React は⽌めるコードを書き、Vue は再実⾏させるコードを書く。「普通」の意味が逆。 つまり、キャッシュを考えなくていい。
  4. 気づき ② 依存配列を、考えなくなった React で⼀番怖かったのが、deps に「毎回新しいオブジェクト」を⼊れてしまう無限レンダリング React — よくある無限レンダリング Vue

    — 同じことを書いてみる const options = { type }; useEffect(() => { setIsDirty(true); }, [options]); const options = computed(() => ({ type: type.value })); watch(options, () => { isDirty.value = true; }); 本体が毎回⾛る → options は毎回別オブジェクト → === が不⼀致 → effect 実⾏ → setIsDirty → 再レンダリング → ↺ 先頭に戻る この⾏が⾛るのは 1 回 → 作り直されない → isDirty は options の 依存じゃない → ↺ が閉じない 輪を閉じていたのは「本体が毎回⾛る」という⼀辺。Vue にその⼀辺が無いから、 この輪は作れない 。 つまり、依存を考えなくていい。(無限ループ⾃体は Vue でも起きる。消えたのは「書き忘れ」「毎回変わる」の2つ)
  5. 気づき ③ 書く場所を、考えなくなった React では、関数のどこに書くかで実⾏結果が変わった。「これ、どこに書くんだっけ」 React — 場所で「いつ‧何回」が決まる Vue —

    どこに書いても、⼀度 if (x) { const [n] = useState(0); // ✗ } const f = () => {}; // 毎回新規 if (x) { const n = ref(0); // OK } const f = () => {}; // 一度だけ 本体が毎回⾛るから、hooks はトップレベル固定、関数は毎回作り直し 。 Vue の setup は⼀度しか⾛らない。 つまり、書く場所を考えなくていい。
  6. 1ヶ⽉前の私に、返信する 渡 渡邊美由貴 8/6 reactでいいじゃんってなってます 渡 渡邊美由貴 今⽇ React でもいいよ。ただ、

    あなたの開発体験は、気づいてないところで Vue の設計 思想の恩恵をもらってるよ。