knockout.jsでは設計の考え方として、MVVMが用いられていると書かれていて、Reactではどういったものがあるのか疑問に感じて調べてみた。
結論から言うとReactでは、Viewのみの責務を負うため、上記のような考え方はない。
react はあくまでDOMを操作するためのライブラリーでしかないのでデータベースアクセスをreact でやるということは不可能。
そうなるとknockout.jsはviewの責務以外も担えるということになるのか。
knockout.jsではWeb フレームワークのような機能まで拡張されているという理解になるのか。
react では MVC が必要なくてコンポーネントを作ってそのコンポーネントが、どんな状態を保っていてどんな振る舞いをすべきかを記述するだけでいい。ページ全体も一つのコンポーネントとして考える。
全てはコンポーネント単位で考えること。
そうすることでいちいち、controllerとかmodelとか考えなくても良くなる。
フロントエンドのフレームワークなのに、そのフレームワークが担える責務範囲が異なっているため、少し頭が混乱していた。