vscodeを使用してReact Native開発環境を構築する方法を教えます

vscodeを使用してReact Native開発環境を構築する方法を教えます

質問

コードにはプロンプトがありません:
RN 開発に不慣れな、フロントエンド以外の学生の多くは、「どのエディターにスマートプロンプトがありますか?」と尋ねます。 。 。高校を卒業する学生にとって、生活は以前よりずっと良くなったので、なぜ自転車が必要なのでしょうか?

低レベルコードエラー:
ここでのエラーとは、スペルミスや記号エラーなどを指します。コードを書いた後、実行するとさまざまなエラーが報告されます。問題を見つけるのに多大な労力を費やし、最終的に中国語のセミコロンに問題があることがわかったこともあります。

解決

可能なオプションは次のとおりです。

  1. TypeScript を使用する: 静的型をサポートする js バージョンを直接使用しますが、別の構文セットを学習する必要があります。また、私のコードはすべて ts で記述されていますが、多くの優れたパブリック ライブラリはそうではありません。
  2. フローを使用する: ネットワーク上の理由により、この環境を構成するのは非常に難しく、いくつかの新しい構文を学習する必要もあります。

私たちの選択: vscode + Typings + eslint

  • vscode: 宇宙で最も強力な IDE ファミリーの最新製品
  • 型付け: タイプスクリプトに基づくインターフェースファイル
  • eslint: 低レベルの構文エラーを検出し、コード形式を標準化し、ベストプラクティスを適用できる静的コードチェック

ツールとプラグイン

エディター: vscode。

必須および推奨されるプラグインは次のとおりです。

注記:

  • 各プラグインをクリックすると、対応する詳細な手順が表示されます。
  • vscodeとプラグインの更新頻度はまだ比較的速いので、時間内に更新することをお勧めします。
  • vscode のプラグインのインストールは非常に簡単です。左下のボタンは拡張機能パネルです。プラグイン名を検索してクリックするだけでインストールできます。

コードインテリジェンスのヒント

react-native などのサードパーティ パッケージの場合:

グローバルにタイピングをインストールします。

npm インストール タイピング -g

react および react-native の API ドキュメントをインストールします。

インストール dt~react --save

インストール dt~react-native --save

インストールが完了するのを待つと (パッケージの数とネットワークの状態によって異なります)、プロジェクトのルート ディレクトリに、typings ディレクトリと types.json 構成ファイルが作成されます。


完了したら、コードを再起動するか、reload コマンドを使用します。これで、react-native および react-related コードに、以下に示すようにプロンプ​​トと指示が表示されます。

メソッドスマートヒント:

表示方法のパラメータ:

マウスをホバーすると手順が表示されます:

注: 他のサードパーティ パッケージの場合、同様のアプローチを使用するか、上記のプラグインを使用できます。

ビジネス コード開発者の場合:

標準のモジュラー js コードの場合、vscode は自動的に接続を確立し、プロンプトを提供するため、コメントを記述するだけで済みます。

ツールキットまたは SDK 開発者の場合:

コードを他の学生に公開する場合は、公開時に対応する .d.ts インターフェース ファイルを提供する必要があります。
デフォルトはパッケージのルート ディレクトリにある index.d.ts ファイルです。それ以外の場合は、package.json 構成で types 項目を指定する必要があります (main と同様)。

インターフェースファイルの書き方: ドキュメント

コードの静的チェック

コードは、CLI と構成ファイル (ルール) で構成される eslint の助けを借りて静的に lint されます。

vscode に対応するプラグインをインストールすると、CLI を自分で実行しなくても、エディター上で検出結果をリアルタイムで確認できるようになります。

注: この記事では、開発では通常使用されない eslint-cli のパラメータについて説明します。自動化されたスクリプト コマンドを作成するときは、ドキュメントを確認してください。

まず、eslint cli と関連プラグインをインストールし、プロジェクトの package.json に開発依存関係を追加します (これは一般的な RN 構成です)。

「devDependencies」: {
    "eslint": "^3.3.1",
    "バベル-eslint": "^6.1.2",
    "eslint-config-airbnb": "^10.0.1",
    "eslint-プラグインインポート": "^1.14.0",
    "eslint-プラグイン-jsx-a11y": "^2.1.0",
    "eslint-プラグイン-react": "^6.1.2"
}

次に、npm install を実行してインストールします。

設定ファイル .eslintrc.js (ここではコメントを追加できるため js 形式を使用します。json 形式はオプションです)

ここで、eslint init を使用してウィザードを起動し、生成することができます。

既製のものをそのまま使用することもできます(利点は、チームの他のプロジェクトと一貫性があることです)。プロジェクトのルートディレクトリに新しい.eslintr.jsファイルを作成します。内容は次のとおりです。

モジュール.エクスポート = {
  パーサー: 'babel-eslint'、
  パーサーオプション: {
    ソースタイプ: 'モジュール'
  },
  拡張: "airbnb",
  プラグイン: [
    「反応する」、
    "jsx-a11y",
    "輸入"
  ]、
  ルール:
    // 0 = オフ、1 = 警告、2 = エラー
    //FB設定リファレンス:
    // https://github.com/facebook/react-native/blob/8baaad9b0fbda2b02bb1834452aa63cac7910dc5/.eslintrc

    "グローバル要求": 0,
    "no-use-before-define": 0, // 定義される前の変数の使用を禁止する
    "max-len": 0, // プログラム内の行の最大長を指定します (デフォルトではオフ)
    "no-console": 0, // コンソールの使用を許可しない (ノード環境ではデフォルトでオフ)
    "no-undef": 2, // /*global */ ブロックで指定されていない限り、宣言されていない変数の使用を禁止します

    「未使用変数なし」: 0,
    "block-scoped-var": 0, // var ステートメントをブロックスコープであるかのように扱います (デフォルトではオフ)
    "complexity": 0, // プログラムで許容される最大の循環的複雑度を指定します (デフォルトではオフ)
    "consistent-return": 0, // return ステートメントでは常に値を指定するか、または値を指定しないことを要求します

    // async-await を許可する
    'ジェネレーターの星の間隔': 0,

    "no-return-assign": 1, // return 文での代入の使用を禁止する

    "react/jsx-ファイル名拡張子": 0,
    「反応/自己終了コンプ」: 1,
    "react/jsx-閉じ括弧の位置": 0,
    "react/prop-types": 0, // reduxのようなプロパティの挿入を避ける},

  // ここで使用できるグローバル変数を設定します "globals": {
    「ウィンドウ」:true、
    「フェッチ」:true、
    "__DEV__": 真、
    "__APP__": 真、
    "__ANDROID__": 真、
    "__IOS__": 真
  }
};

ここでは主にプラグインと検出ルールを設定します。いくつかの手順は次のとおりです。

  • ルールリスト
  • ルールの後の 0 はオフを意味し、1 は警告を表示することを意味し、2 はエラーを表示することを意味します。一部のルールはパラメータで設定できます。詳細については、上記のルールリストのドキュメントを参照してください。
  • vscode が自動的に修正できる単純なエラーがいくつかあります (電球アイコンが表示された場合は、自動的に修正できることを意味します)

ここでのルールは、基本的に実践からまとめた js コードの書き方のベストプラクティスです。検出エラーが発生した場合は、ルールを直接検索して手順を読んでください。

ただシャットダウンしないでください。

vscode 用の eslint プラグインをインストールした後:

さらに:

事前コミット ツールを使用して eslint を実行し、各送信前にコードを監視できます。失敗した場合、送信は禁止されます。

デバッグ

vscode に react-native-tools プラグインをインストールした後、chromDevTools を使用してコードをデバッグできます。

よりネイティブに近いデバッグ方法。

私たちがよく使う方法は次のとおりです。

  • ターミナルでパッケージサーバーを開く
  • vscode の選択、dbug、パッケージャーへのアタッチ
  • ターミナルでデバッグメニューを表示し、JSをリモートでデバッグを選択します。

要約する

仕事をうまくやり遂げたいなら、まず道具を研がなければなりません。努力する価値はあります。

優れた開発環境は、品質を確保しながら効率性を実現します。

優れた開発経験があれば、コーディングが楽しくなります。

これで、vscode を使用して react-native 開発環境を構築する方法を説明するこの記事は終了です。より関連性の高い vscode 構築 react-native コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • React でカレンダー コンポーネントを構築するためのステップ バイ ステップ ガイド
  • React における ref の一般的な使用法の概要
  • ReactはExcelファイルのインポートとエクスポートを実装します
  • Vue3.0 における Ref と Reactive の違いの詳細な分析
  • Visual Studio Code + Reactをベースに開発環境を構築するプロセス
  • HTMLからReactを実装する方法を教えます
  • React 並行関数エクスペリエンス (フロントエンド並行モード)
  • React+TypeScriptプロジェクト構築事例解説

<<:  SQL文でのgroup byの使用について簡単に説明します

>>:  Linux のプロセスクラッシュの原因をコアダンプ技術を使用して追跡する簡単な分析

推薦する

Linux コマンドラインで他のユーザーと通信する方法

Linux のコマンドラインで他のユーザーにメッセージを送信するのは簡単です。これを行うコマンドは多...

MySQLを5.7にアップグレードすると、WordPressはデータをインポートするときにエラー1067を報告します

最近MySQLを5.7にアップグレードしましたが、WordPressでデータのインポート時にエラーが...

CSS の子要素の Z インデックスと親要素の兄弟ノードの階層問題を解決する

1. 問題の出現フラット リストを作成しました。リストの一部には、マウスをホバーすると表示されるポッ...

ハイパーリンクのWebデザイン原則

<br />関連記事: Web コンテンツ ページ作成のための 9 つの実用的なヒント、...

Dockerイメージをインポートおよびエクスポートする方法

この記事では、移行、バックアップ、アップグレードなどのシナリオで使用される Docker イメージの...

MySQL 5.7.20 zip インストール チュートリアル

MySQL 5.7.20 zipインストール、具体的な内容は次のとおりです(1)圧縮パッケージを解凍...

誰もが知っておくべきウェブサイトのユーザビリティに関する 10 のヒント

これ以上時間を無駄にせず、早速本題に入りましょう。 1. ロゴに代替テキストを追加するこれには 2 ...

Linux で libudev を使用して USB デバイスの VID と PID を取得する方法

この記事では、libudev ライブラリを使用して hidraw デバイスにアクセスします。 lib...

Nginx フォワード プロキシとリバース プロキシ、および負荷分散機能の構成コード例

この記事は主に、Nginx のフォワード プロキシとリバース プロキシ、および負荷分散機能の設定コー...

CentOS6.5 でファイル共有サービス Samba を構築するチュートリアル

Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...

主キーを追加または変更するMySQL SQL文操作

テーブルフィールドを追加する テーブルtable1を変更し、トランザクタvarchar(10)をNu...

純粋な CSS 実装 (スクリプトなし) HTML コマンド スタイルのツールチップ テキスト プロンプト効果

実行プロセスを分析します。マウスをノードに移動して、ノードにツールチップ実装を開くための識別子 (...

Alibaba Cloud Server Ubuntu 上の Workbench が MySQL に接続できない問題の解決策 (テスト済み)

過去 2 日間、ワークベンチが Alibaba Cloud Server に接続できない問題を解決す...

MySQL の遅いクエリの落とし穴

目次1. 遅いクエリ構成1-1. スロークエリを有効にする2. 遅いクエリSQLの分析を説明する3....

js でショッピングモールのシミュレーションを実現

HTML、CSS、JSフロントエンドを学習中の皆さん、今回はショッピングモールの事例の実装をシェアし...