Closed3

Reactでなぜ継承がよくないのか

ハトすけハトすけ

公式サイトにはこう書いてある。

React は強力なコンポジションモデルを備えており、コンポーネント間のコードの再利用には継承よりもコンポジションをお勧めしています。

継承が良くない理由が気になったのでいろいろと集めてみます。

ハトすけハトすけ

Don’t Use Inheritance in React

https://medium.com/@marc.aaron.glasser/dont-use-inheritance-in-react-2f5343a0a298

ここで述べている問題は2つ

  1. そのコンポーネントにメソッドがなければ、親にメソッドがある可能性があるので、親まで辿らないと行けない。不必要に複雑になっている。
  2. 新しいコンポーネントを作成するときに、単に親のコンポーネントがもつメソッドの一つを利用したいとする。その場合でも親のコンポーネントの持つ全てのメソッドを渡す必要があり、親と密接にカップリングしてしまう。
  3. 上記2の場合で、仮にその新しいコンポーネントがすでに他の親を継承していた場合、依存は1つまでなので、その親のコンポーネントを継承できない。継承先の親をさらに継承させるなどチェーンのようにする必要があるが、そもそもコンポジションを利用すれば最初からそのような問題になることもない。
このスクラップは2021/03/21にクローズされました