了解です!
では続けて コラム: よくある落とし穴とその回避策「子コンポーネントの再利用性を損なう書き方」 を書きます。
props と emit を正しく使っているつもりでも、
親のロジックに子が依存しすぎる設計 になってしまい、
その結果 「この子コンポーネント、他で使い回せないじゃん…」 となることがあります。
<!-- ChildComponent.vue -->
<template>
<button @click="store.commit('counter/increment')">Increment</button> <!-- ❌ -->
<p>{{ store.state.counter.count }}</p> <!-- ❌ -->
</template>
<script lang="ts" setup>
import { useStore } from 'vuex';
import { State } from '@/store';
const store = useStore<State>();
</script>
counter モジュールに強く依存 している| 問題点 | 説明 |
|---|---|
| 子が状態を直接持ってしまう | 子の役割は「受け取って表示」なのに「自分で状態をいじる」 |
| emit を使わず store 直呼び | 親に通知すべきなのに、子が勝手に操作してしまう |