React Native雑談


reactivecoaと同じように、react-nativeも早くから関心を持ち始めました.この間になってやっと勉強したのは、原因がいくつかあります.
  • プロジェクト全体が比較的成熟しています.
  • 国内外のコミュニティは比較的に活発です.
  • JavaScriptとReactの学習コストは思ったほど高くないです.
    前の二つの原因について詳しく説明する必要があると思います.下記の内容はreact-nativeの代わりにRN略語を使います.
    RNの更新頻度は非常に高く、これまでのところ大体の数ヶ月のバージョンで、昨年3月末にリリースされたバージョン0.1.0から現在の0.25.0までは全部で82バージョンに達しています.もちろん、この中には多くのrc版が含まれています.
    実際には、プロジェクトの流行に影響を与える部分が大きいのは、そのコミュニティの活性度に依存しています.RNコミュニティが現在このように活躍しているのもフェイスブックの普及のおかげです.例えば、この2年間のF 8大会、オープンソースはAtomに基づくIDE:nuclide、第三者ライブラリ検索サイトjs.com、自宅のFacebook Ads Manager、2479142プロジェクトはRN開発などを使用しています.国内の交流プラットフォームもいいです.例えば、react native中国語コミュニティです.また、github上の2つのRNが資料、コンポーネントなどの集合プロジェクトawesome-react-nativeとreact-native-guideを学ぶのは良いガイドです.
    みんなが関心を持っている問題をいくつか選んで、自分の見方と理解を話してみました.
    学習コスト
    新しい技能を勉強するには、まずどんな基本条件が必要ですか?RNにとって必要なのはもちろんJavaScriptとReactの基礎ですが、私は意図的にJavaScriptとReactを勉強していません.個人的には開発経験のあるプログラマにとって文法は問題ではないと思います.JavaScriptという言葉に対しても「気軽」な言葉は同じです.だから、RNを勉強したい時にはJavaScriptとReactの経験がないので、基本的にどれぐらいの障害をもたらすか心配しなくてもいいです.
    パフォーマンス
    性能問題については多くの文章が分析していますが、私は自分の主観的な感想だけを述べています.iOSにとっては、あまり複雑ではないページの性能がnativeに近い限り、画面が切り替わる時に、わずかなカードトンを発見することがあります.AndroidはプラットフォームまたはRNの最適化の問題かもしれません.現在の性能表現は非常に理想的ではありませんが、完全に受け入れられます.ここでは、RN上のアニメーションは性能に一定の影響を与えるので、大量のアニメーションを使用することを推奨していません.公式サイトでも、性能問題と発生の原因を説明しています.性能問題があれば、詳しく読むことを強く勧めています.
    実際の応用
    RNを完全に使ってビジネス項目を書きます.以下の問題が発生すると思います.
  • は、どれだけnativeプラットフォームのコードに関わっていますか?あなたのプロジェクトが非常に簡単でない限り、第三者プラットフォーム(第三者共有・ログイン)には触れていません.複雑なページがなく、複雑な処理がなく、複雑なアニメーションがありません.例えば、APPにはキャッシュをクリアする機能があります.二つのコードを書かなければならないです.個人的には、RNがどの程度反復しても、二つのプラットフォームを同時に満たすことができない場合があります.この場合は第三者ライブラリに頼る必要があります.
  • プラットフォーム間のUIの違いは、RNの理念がFacebook Groupsであるため、適切なプラットフォームを準備する必要があります.これはほとんど避けられないことです.また、同じコントロールが異なるプラットフォーム上のパフォーマンスにも違いがあります.私はかつてwrite once, run anywhereコントロールのTextInput位置が二つのプラットフォームの下に位置していた場合に遭遇したことがあります.
  • アニメーションは、前にも述べたように、アニメーションは性能に一定の影響があり、複雑なアニメーションはRNにとって非常に困難な
  • である.
  • RN自身のバグ問題は、この問題が早期バージョンで特に際立っているかもしれません.いったん発生したら、RNチームに早く解決してもらいたいです.このようなビジネスプロジェクトは比較的面倒です.
    また勉強しているうちに、いくつかの面白いところを見つけました.
  • ListViewは、iOS層において、UScrrollViewパッケージに基づく
  • である.
  • Textは、iOS層でUID Viewであり、UICLabelまたはUICText Viewではなく、RNはDraw方式で文字をビューに描画している.これにより、より良い性能表現が得られるので、iPhoneが持っているカレンダーアプリケーションを勝手に紹介するのもこのような処理方法である.詳細:簡書
  • Touchable Highlightなどは、iOS層で実際にplaceholderに基づくパッケージであり、UButton
  • ではない.
    ツール
    初心者のために、MACプラットフォームはエディタを使用することを推奨します.Atomは、前述のAtomベースIDE:nuclideに合わせて、いくつかのAtomプラグインを追加します.
  • langage-babel
  • langage-javascript-jsx
  • react
  • 自動補完が必要だと思ったら、この2つのプラグインreact-snippetsとatom-react-native-autom computeを試してみてもいいです.
    メモ
    国際版のイメージノートを使っている学生は、RNノートを追加してもいいです.