フロントエンドにおける「関心の分離」は間違っていた
……というのがコンポーネント志向の本質です。
「HTML と CSS と JS を同じファイルに書くなんて関心の分離に反している」、という主張を古き良き人々から聞くことがある。
これはおかしくて、そもそも HTML と CSS と JS が違う関心というのはブラウザにとっての視点であり、開発者の視点では最初からなかった。CSS なんて、HTML 内のクラスと暗黙の結合があるよね。
本当は密結合であるものを拡張子の違いだけで分離した結果破綻したのがこれまでの #フロントエンド 設計の歴史であり、要するに関心の分離なんて嘘じゃん、という反省から生まれたのが React や Vue などの「コンポーネント」なんですよという話。