了解です!
では続けて コラム: よくある落とし穴とその回避策「子コンポーネントの再利用性を損なう書き方」 を書きます。
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 直呼び | 親に通知すべきなのに、子が勝手に操作してしまう |