TL;DR
Controlled Component と Uncontrolled Component のいいとこ取りをするパターン。
仕組み
Props を省略可能にし、次のように振る舞わせる。
- Props が渡された場合は、Controlled Component として振る舞う。
- Props が渡されない場合は、Uncontrolled Component として振る舞う。
例
HTML の <input> も、このパターンで作られている。
自分の理解
Test-Driven React, Second Edition で初めて見たパターンである。本では Controllable Pattern という名前だったが、おそらく同じものだと思う。