質問: 初歩的な質問で申し訳ないのですが、 1、reactでiosもandroidアプリもかけるようになる 2、reactはMVCで言う所のviewを務める と聞いたのですが、MVCのmodel(バックエンド)はなんの言語で書くんですか?reactじゃかけないんですか?
回答: 「○○だと聞いたことがある」と言う場合は「どこから聞いたのか」を書くと良いです。もし、それが思い出せないのであれば、たいていの場合その情報は不正確である、または、どこかしら内容に不足があります。時には完全に間違っている場合もあります。ソースを失った情報には都市伝説並みの価値しかありません。 では、二つについて書きます。 > > 1、reactでiosもandroidアプリもかけるようになる > > > この表現が正確はありません。「React Nativeを使えばJavaScriptとReactの手法でiOSやAndroidのネイティブアプリが作れる」です。ReactもReact NativeもFacebook社が開発し、公開している物ですが、**違う物**です。Reactだけをいくら使ってもネイティブアプリは作れません。React Nativeがあって初めてネイティブアプリが作れるようになります。 React NativeはReactと同じデザインで作られているから、Reactと同じようにコンポーネントなどを設計・コーディングできます。既にReactを知っているのであれば、やり方を知っていると言うことなので、それほど苦労せずにReact Nativeを習得することができるでしょう。 > > 2、reactはMVCで言う所のviewを務める > > > ReactがまかなうのはViewのみです。それ以外の部分はフレームワークやライブラリを使わずに一から構築するか、他のフレームワークやライブラリを使う必要があります。MVCのフレームワークでは全ての部分を備えたフルスタックなフレームワークが多いのですが、そのようなフレームワークでもViewだけReactにすると言うことも可能です。また、フルスタックでないフレームワーク同士をつなぎ合わせて、Viewの部分にReactを採用すると言うことも可能になっています。 ほとんどViewしかないものであれば、そもそも何のフレームワークもライブラリも使う必要が無い物であれば、Reactだけでなんとかなりますが、巨大で複雑になっていくとReact以外の部分をフレームワークやライブラリ無しで構築するのはかなり手間になってきます。Reactの開発元であるFacebook社は、そのような場合はFluxという枠組み(FluxはMVCと同レベルの概念であり、Fluxというフレームワークがあるわけではありません)を提唱しています。現在は、Fluxの実装の一つであるReduxを使う場合が多いようです。ただ、Fluxは必須ではなく、他の枠組みでもよく、ViewだけReactを採用と言うことができるというのが、Reactの利点です。