2016-04-08 32 views
0

React Nativeの第一優先事項はクロスプラットフォームではないことが分かっています。それは、の代わりに "どこでも書いてみよう" を請求します。したがって、StatusBarIOS、NavigatorIOS、AlertIOSなどのいくつかの特定のコンポーネントがあります。 Navigator、StatusBarなどのクロスプラットフォームの代替コンポーネントがいくつかありますが、Facebookでは、パフォーマンスを向上させるためにプラットフォーム固有のバージョンを使用するよう提案しています。React Nativeのクロスプラットフォーム

しかし私の質問は、プラットフォーム固有のバージョンを最初にユニバーサルバージョン内にラップしないのはなぜですか?たとえば、Navigator、iOSで内部的にNavigatorIOSを使用しないのはなぜですか?パフォーマンスを維持し、それを同時にクロスプラットフォームにするのはよかったですか?

答えて

1

あなたは

によって何を意味するかに依存しますが、私の質問は、なぜちょうど最初の場所でのユニバーサルバージョンの内側のプラットフォーム固有のバージョンをラップしていないのですか?

私はいわゆるクロスプラットフォームアプリケーションを構築しようとしていました。しかし、プラットフォーム固有のコンポーネントを最も簡単にレンダリングするためにif-elseブロックをあまりにも多く書くことになりました。私はアプリ全体を一掃し、代わりにより良いフォルダ構造を使ってみました。

私はアプリケーションのルートにsrcフォルダを作成しました。アプリをapi,views,componentsに分けました。 viewscomponentsはさらにandroidiosというフォルダに分割されています。 srcフォルダ内にはmain.jsがあり、これにはNavigatorが含まれていました。

これは私がやりたいことです!あなたは何か他のことをしたいかもしれません。大丈夫。この学習経験の終わりに、私はFacebookが正しかったと分かりました。それはないどこでも一度だけ使用してくださいが一度学びますが、あなたは欲しいです!あなたのアプリがあなたのユーザーに60FPSの経験を提供している限り、何かがReact Nativeで有効です。

+0

私が意味するのは、FacebookがReact Native内のすべてを標準インターフェースでラップするだけなのです。たとえば、iOSでNavigatorを使用すると、実際にはNavigatorIOSが使用されます。それでは***の場合は***、***の場合は***は必要ありません。 –

+0

少なくとも楽しませる十分なアイデア。しかし、ナビゲータのIOSはもはやFacebookによって維持されません。他のコンポーネントはプラットフォーム固有のため、サポートされていないプラットフォームでは使用できません。 Facebookはプログラマーの常識を信じており、したがってコンポーネントの疎結合を信じている。 – Mihir

+0

実際には、*** Alert ***と*** AlertIOS ***に違いは見られません。 ***アラート***はクロスプラットフォームになります。この場合、*** AlertIOS ***を使用する理由、またはAlertIOSを維持する必要がある理由は何ですか?とにかくあなたの考えに感謝します。 –

関連する問題