WebStorm 2026.1 Help

React

React は、カプセル化されたコンポーネントから複雑なインタラクティブユーザーインターフェースを構築するための JavaScript ライブラリです。 React オフィシャル Web サイト(英語)からライブラリの詳細を参照してください。

WebStorm は React と統合され、構成、編集、リント、実行、デバッグ、アプリケーションの保守を支援します。

始める前に

  1. コンピューターに Node.js(英語) があることを確認してください。

  2. ReactJavaScript DebuggerVite 必須プラグインが 設定 | プラグイン ページ、タブ インストール済み で有効になっていることを確認してください。 詳細については、 プラグイン管理を参照してください。

新しい React アプリケーションを作成する

React アプリケーションを生成する

  1. ようこそ 画面で 新規プロジェクト をクリックするか、メインメニューから ファイル | 新規 | プロジェクト を選択します。 新規 プロジェクト ダイアログが開きます。

  2. 左側のペインで、 React を選択します。

  3. 右側のペインで:

    1. プロジェクト関連ファイルが保存されるフォルダーへのパスを指定します。

    2. ノードランタイム フィールドで使用する Node.js ランタイムを指定します。 リストから設定済みのランタイムを選択するか、 追加 を選択して新しいランタイムを設定してください。

    3. React CLI リストから、使用するジェネレーターを選択してください。

      • デフォルトの npx create-vite を受け入れると、開発環境が Vite を使用するように事前に構成されます。

      • npx create-react-app を選択すると、webpack、Babel、ESLint を使用するための開発環境が事前に設定されます。

      • 以前にダウンロードしたカスタムジェネレーターを使用するには、 選択 をクリックし、開いたダイアログでジェネレーターへのパスを指定します。

      React pp を作成 - ジェネレーターを選択
    4. オプション:

      JSX の代わりに TSX を使用するには、 TypeScript プロジェクトの作成 チェックボックスを選択します。 WebStorm は、アプリケーション用の .tsx ファイルと tsconfig.json 構成ファイルを生成します。

  4. 作成 をクリックすると、WebStorm は必要な設定ファイルがすべて揃った React 専用プロジェクトを生成し、必要な依存関係をダウンロードします。 WebStorm はまた、アプリケーションの実行やデバッグ用のデフォルト設定を持つ npm startJavaScript デバッグ 構成も作成します。

空の WebStorm プロジェクトに React をインストールする

この場合、以下の React アプリケーションの構築の説明に従ってビルドパイプラインを自分で設定する必要があります。 React オフィシャル Web サイト(英語)からプロジェクトに React を追加する方法の詳細を参照してください。

空の WebStorm プロジェクトを作成する

  1. ようこそ 画面で 新規プロジェクト をクリックするか、メインメニューから ファイル | 新規 | プロジェクト を選択します。 新規 プロジェクト ダイアログが開きます。

  2. 左側のペインで、 空の プロジェクト を選択します。 右側のウィンドウで、アプリケーションフォルダーを指定し、 作成 をクリックします。

空のプロジェクトに React をインストールする

  1. React を使用する空のプロジェクトを開きます。

  2. 組み込み ターミナル (Alt+F12) で次のように入力します。

    npm install --save react react-dom

既存の React アプリケーションから始める

既存の React アプリケーションの開発を続行する場合は、WebStorm で開いて必要な依存関係をダウンロードしてください。

すでにマシン上にあるアプリケーションソースを開く

  • ようこそ 画面で 開く をクリックするか、メインメニューから ファイル | オープン を選択します。 開いたダイアログで、ソースが保存されているフォルダーを選択します。

バージョン管理からアプリケーションのソースをチェックアウト

  1. ようこそ 画面で リポジトリのクローン をクリックします。

    あるいは、メインメニューから ファイル|新規|バージョン管理からプロジェクト…Git|クローン…VCS | バージョン管理から取得​ を選択します。

    メインメニューの Git の代わりに、プロジェクトに関連付けられている他のバージョン管理システムが表示される場合があります。 例: Mercurial または Perforce

  2. 表示されるダイアログで、リストからバージョン管理システムを選択し、アプリケーションソースをチェックアウトするリポジトリを指定します。 詳細については、 プロジェクトをチェックアウトする(クローン) を参照してください。

依存関係をダウンロードする

  • ポップアップで 'npm install' を実行 または 'yarn install' を実行 をクリックします。

    アプリケーションを開いて依存関係をダウンロードする

    npmYarn 1 または Yarn 2 を利用可能です。詳細は npm と Yarn を参照してください。

  • または、エディターの package.json のコンテキストメニュー、または プロジェクト ツールウィンドウ (Alt+1) で 'npm install' を実行 または 'yarn install' を実行 を選択します。

プロジェクトのセキュリティ

WebStorm の外部で作成されインポートしたプロジェクトを開くと、WebStorm は未知のソースコードをどう扱うか選択できるダイアログを表示します。

信頼できないプロジェクトの警告

次のいずれかのオプションを選択します:

  • セーフモードでプレビュー :この場合、WebStorm はプロジェクトをプレビューモードで開きます。 これは、プロジェクトのソースを参照することはできますが、タスクやスクリプトを実行したり、プロジェクトを実行 / デバッグしたりすることはできないことを意味します。

    WebStorm はエディター領域の上部に通知を表示し、 プロジェクトを信頼する… リンクをクリックしていつでもプロジェクトをロードできます。

  • プロジェクトを信頼 :この場合、WebStorm はプロジェクトを開いてロードします。 つまり、プロジェクトが初期化され、プロジェクトのプラグインが解決され、依存関係が追加され、すべての WebStorm 機能が利用可能になります。

  • 開かない :この場合、WebStorm はプロジェクトを開きません。

詳細は プロジェクトのセキュリティ をご覧ください。

コード補完

WebStorm は JavaScript コード内の React API や JSX に対してコード補完を提供します。 コード補完は、React メソッド、React 固有の属性、HTML タグとコンポーネント名、 React イベント(英語) 、コンポーネントプロパティなどに対して機能します。 React オフィシャル Web サイト(英語)から詳細を参照してください。

React メソッドのコード補完と React 固有の属性を取得するには、プロジェクトのどこかに react.js ライブラリファイルが必要です。 通常、ライブラリはすでに node_modules フォルダーにあります。

完全な React メソッド、属性、イベント

デフォルトでは、入力時にコード補完ポップアップが自動的に表示されます。 例:

補完ポップアップ

JSX タグでは、WebStorm は React 固有属性 (例えば classNameclassID )、および 非 DOM 属性 (例えば keyref )のコーディング支援を提供します。 さらに、自動補完は、プロジェクトの CSS ファイルで定義されているクラスの名前に対しても機能します。

CSS クラス名の完成

onClickonChange などのすべての React イベント(英語)は、波括弧 ={} または引用符 "" と一緒に自動的に補完することもできます。

Complete React events

デフォルトでは、波括弧が挿入されます。 WebStorm で常に引用符を追加するか、 TypeScript 定義ファイル (d.ts) の型に基づいて引用符または中括弧を選択することができます。 デフォルト設定を変更するには、 設定 ダイアログ (Ctrl+Alt+S) を開き、 エディター | コードスタイル | HTML に移動して、 JSX 属性の追加 リストから該当するオプションを選択します。

JSX 属性の追加

また、波括弧内の JavaScript 式の補完も可能です。 これは、定義したすべてのメソッドと関数に適用されます。

波括弧内の JavaScript 式の完成

完全な HTML タグとコンポーネント名

WebStorm は、JavaScript のメソッド内または他のコンポーネント内で定義された HTML タグやコンポーネント名のコード補完を提供します:

HTML タグとコンポーネント名の補完

補完は、ES6 スタイル構文でインポートされたコンポーネントにも対応しています:

ES6 構文でインポートされたコンポーネントの補完

完全なコンポーネントプロパティ

WebStorm は propTypes を使って定義されたコンポーネントのプロパティに対してコード補完を提供し、それらの定義に迅速にジャンプしたりプレビューしたりすることができます:

Completion for component properties

コンポーネント名を自動補完すると、WebStorm は必要なプロパティをすべて自動で追加します。 必要なプロパティの一部がコンポーネント利用時に不足している場合、WebStorm は警告を表示します。

機能コンポーネントに状態を追加する

WebStorm は、特定の場所に未解決の参照を定義することで、関数型 React コンポーネントに useState(フック) フックを追加するクイックフィックスを提案します。 WebStorm は useState フック用の import ステートメントを自動的に挿入します。 状態タイプは、参照が定義されている場所から推測されます。

  • 未解決の参照にキャレットを置き、 Alt+Enter を押して、リストから <機能コンポーネント名> コンポーネントに <未解決の reference> 状態を作成する を選択します。

props を追加

WebStorm は、特定の場所で未解決参照を定義することにより、React コンポーネントに新しいプロパティを追加するクイックフィックスを提案します。

WebStorm は、追加プロパティを持つコンポーネントのコードを生成します。 プロパティの型は、対応する参照が定義されている場所から推論されます。

クイックフィックスはクラスベースのコンポーネントにも適用できます。 この場合、新しいプロパティが挿入された後、未解決の参照は this.props.${reference_name} に置き換えられます。

  • 未解決の参照にキャレットを置き、 Alt+Enter を押して、リストから <コンポーネント名> コンポーネントに <未解決の reference>prop を作成する を選択します。

    props を追加

HTML 属性を JSX に転送する

クラス属性または on 系のイベントハンドラを含む HTML コードをコピーして JSX に貼り付けると、WebStorm はこれらの属性を React 固有のものに自動的に置き換えます(classNameonClickonChange など)。

Transfer HTML to JSX

これは TSX でも機能します:

Transfer HTML to TSX

単一タグを含む HTML コードをコピーして JSX に貼り付けると、WebStorm は各単一タグの末尾にスラッシュ / を自動的に追加します。

Transfer HTML to JSX: close single tags

HTML コードをそのまま JSX または TSX にコピーするには、 そのまま貼り付け Ctrl+Alt+Shift+V を使用するか、 設定 ダイアログ (Ctrl+Alt+S) を開いて エディター | 一般 | スマートキー | JavaScript の設定ページに移動し、 JSX ファイルに貼り付ける際、HTML 単一タグを閉じるJSX ファイルに貼り付けるときに HTML 属性名を変換する のチェックボックスをオフにします。

React コードスニペット

WebStorm には React Hooks を含む React アプリでよく使う多数のステートメントやコードブロックに展開される 50 以上のコードスニペットが用意されています。 以下の例は、 rcjc 省略形を使用して、新しい React コンポーネントを定義するクラスを作成する方法を示しています。

Live template for a React component

スニペットから React コード構成を作成する

  • 必要な省略形をエディターに入力し、 Tab を押します。

  • Ctrl+J を押して、関連するスニペットを選択します。 検索を絞り込むには、略語の入力を開始してから、 補完リストから選択します。

詳細は ライブテンプレート を参照してください。

使用可能なすべての React スニペットのリストを表示する

  • 設定 ダイアログ (Ctrl+Alt+S) で、 エディターライブテンプレート をクリックし、 React ノードまたは React フック ノードを展開します。

    ライブテンプレート: React および React hooks

React ディレクティブ

WebStorm は、ファイルの先頭および関数内で次の React ディレクティブ を認識し、ハイライトします:

JSX の Emmet

WebStorm では、HTML だけでなく JSX コードでも特別な React の仕様を利用しつつ Emmet を使えます。 例: 略語 div.my-class は JSX では <div className=”my-class"></div> に展開されますが、HTML のように <div class=”my-class"></div> には展開されません。

Expand Emmet template in React

React アプリケーションを移動する

基本的なナビゲーションに加え、WebStorm は React 固有のコード要素間の移動もサポートしています。

  • 波括弧 {} 内のメソッドまたは JavaScript 式の宣言に移動するには、メソッドまたは式を選択して Ctrl+B を押します。

    コンポーネントの宣言に移動するには、コンポーネント名を選択して Ctrl+B を押します。

  • コンポーネント定義を表示するには、 Ctrl+Shift+I を押します。 定義と型定義 の詳細をご覧ください。

    ポップアップでコンポーネントのクイック定義を表示する
  • コンポーネントの簡単なドキュメントを表示するには、 Ctrl+Q を押します。 JavaScript ドキュメントの検索 の詳細をご覧ください。

    React コンポーネントのクイックドキュメントポップアップ
  • WebStorm では エディターパンくずリストやタグツリーのカラフルなハイライト表示によって JSX タグ間を簡単に移動できます。

    React アプリケーションでの JSX タグのハイライトとパンくずリスト

構造ビューで移動する

構造 ツールウィンドウと 構造 ポップアップにより、React コード構造をより明確に把握できるようになり、ナビゲーションが容易になり、React コンポーネントと関連要素の理解が深まります。

構造 ツールウィンドウには、次の React 固有のノードが表示されます。

  • 名前付きの JSX および TSX タグ。

  • React コンポーネント ノードは React コンポーネント宣言を表示します。 React コンポーネントの定義(英語)に一致するクラスまたは関数ごとに個別のノードが作成されます。

    構造ビュー - コンポーネントノード
  • React フック ノードは React フック宣言を表します。 React コンポーネント内の フックのルール(英語)に一致する関数呼び出しごとに個別のノードが作成されます。 各ノードにはフック名とそのジェネリック型が表示されます。

    フックによって初期化された変数は、そのノードに子として表示されます。

    構造ビュー - フックノード

    [variableName, setVariableName] 形式で 2 つの変数を返すフックの場合、変数名はフック名の横に灰色で表示されます。

    構造ビュー - setVariable によるフック
  • 条件付き ノードは、条件に応じてレンダリングされる JSX タグノードを表します。 JSX を含まない条件は表示されません。

    構造ビュー - 条件ノード
  • 属性 ノードは、他のコンポーネント props 内の JSX を表します。 JSX を含まない属性は表示されません。

    構造ビュー - 属性ノード
  • 配列 ノードは JSX を含む配列を表します。

    構造ビュー - 配列ノード
  • 変数 ノードは JSX を含む変数を表します。

  • マップ ノードは、JSX コンテンツ内の配列マップを表します。

    構造ビュー - マップノード
  • 構造 ツールウィンドウを開くには、 Alt+7 を押すか、メインメニューの 表示 | ツールウィンドウ | 構造 に移動します。

  • 構造 ポップアップを開くには、 Ctrl+F12 を押すか、メインメニューの ナビゲート | ファイル構造 に移動します。

  • 構造 ツールウィンドウと 構造 ポップアップは、アクティブなエディタータブ内のファイルと同期しています。 構造ビュー内を移動すると、ファイル内の対応するコード要素がハイライト表示されます。 また、ソースコード内の項目の名前を変更すると、対応するノードもそれに応じて更新されます。

    構造ビュー内の項目からソースコードに移動するには、 F4 を押します。

ソースコードナビゲーション: ファイル構造の詳細を参照してください。

React アプリケーションをリントする

JavaScript および HTML 用すべての WebStorm 組み込み コードインスペクションは JSX コードでも利用できます。 WebStorm は未使用の変数や関数、終了タグの不足、ステートメントの欠落などの場合に警告を表示します。

React アプリケーションの JavaSxript インスペクション

一部のインスペクションでは、WebStorm がクイックフィックスを提供します。例えば、不足しているメソッドの追加を提案します。 クイックフィックスのポップアップを表示するには Alt+Enter を押してください。

インスペクションの一覧をカスタマイズするには、 設定 ダイアログ(Ctrl+Alt+S )を開き、[エディター]→[インスペクション]で不要なインスペクションを無効化するか、重要度レベルを変更してください。 詳しくは、 インスペクションの無効化と有効化インスペクションの重大度を変更する を参照してください。

ESLint

組み込みコードインスペクションのほか、WebStorm は ESLint などのリンターとも統合し、JSX コードをチェックできます。 ESLint は、プラグインで拡張できる幅広い lint ルールをもたらします。 WebStorm は入力と同時に、ESLint が報告した警告やエラーをエディターに表示します。 ESLint を使用すると、 JavaScript 標準スタイル(英語)を使用したり、 TypeScript コードをリントしたりすることもできます。

詳細は、 ESLint を参照してください。

ESLint で React JSX 構文を正しく解釈させるには eslint-plugin-react が必要です。 このプラグインにより、たとえば React コンポーネントの表示名前が設定されていない場合や、危険な JSX プロパティが使用されている場合などに警告が表示されます。

React を使用した ESLint: エラーと警告がハイライトされ、問題の説明がツールチップに表示されます。

React プロジェクトに ESLint をインストールおよび構成する

  1. 組み込み ターミナル表示 | ツールウィンドウ | ターミナル )で、次のように入力します。

    npm install --save-dev eslint npm install --save-dev eslint-plugin-react
  2. プロジェクトに ESLint 構成ファイルを追加します。

  3. 設定 ダイアログ(Ctrl+Alt+S )で、 言語 & フレームワーク | JavaScript | コード品質ツール | ESLint に移動し、 自動 ESLint 構成 を選択します。 WebStorm はプロジェクト node_modules フォルダー内の ESLint を自動検出し、 .eslintrc.* ファイルや package.json 内の eslintConfig プロパティからデフォルト構成を使用します。

    または、 手動 ESLint 構成 を選択して、カスタム ESLint パッケージと構成を使用します。

    詳細は WebStorm での ESLint の有効化と構成 をご参照ください。

.eslintrc 構造体の例 (react プラグイン付き ESLint 1.x)

  1. ecmaFeatures オブジェクトに、 "jsx" = true を追加します。 ここでは、ES6 クラスやモジュールなど、使用したい追加の言語機能を指定することもできます。

  2. plugins オブジェクトに、 react を追加します。

  3. rules オブジェクトでは、有効にする ESLint ビルトインルール(英語)と、 react プラグイン経由で利用できるルール(英語)をリストできます。

    { "parser": "babel-eslint", "env": { "browser": true, "es6": true, "jest": true }, "rules": { "arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }], "react/jsx-props-no-spreading": "off", "react/jsx-sort-props": ["error", { "reservedFirst": ["key"] }], "react/require-default-props": "off", "react/sort-prop-types": "error", "react/state-in-constructor": ["error", "never"], "semi-spacing": "warn" }, "overrides": [ { "files": [ "sample/**", "test/**" ], "rules": { "import/no-unresolved": "off" } } ] }

ESLint 公式 Web サイト(英語)から ESLint および react プラグイン構成の詳細を学びましょう。

React アプリケーションを構築する

既存の WebStorm プロジェクトへ React をインストールした場合、ビルドプロセスの設定が必要です。 React オフィシャル Web サイト(英語)から React アプリケーションのビルドパイプラインを構成するさまざまな方法について説明します。

プロジェクト内で複数のフレームワークを使用する

場合によっては、React プロジェクト内で他のフレームワークを使用する必要があることがあります。

各ファイルでコンテキスト認識コーディング支援を受けるには、構成ファイル .ws-context を作成し、各ファイルまたはフォルダーで使用するフレームワークを指定します。 このファイルの設定は、デフォルトの構成を上書きします。

  1. プロジェクトルートで、コンテキストメニューから 新規 | ファイル を選択し、ファイル名として .ws-context を指定します。

  2. .ws-context では、次の 2 種類のプロパティを使用します。

    • コンテキスト値文字列を持つ <context-name>

    • コンテキスト詳細オブジェクト付き GLOB パターン

  3. 次のコンテキスト値を使用してください:

    • framework: vueangularreactsvelteastro

    • angular-template-syntax: V_2V_17

    • nextjs-project: nextjs

    • astro-project: astro

    • vue-store: vuexpinia

    • vue-class-component-library: vue-class-componentvue -property-decoratorvue-facing-decorator

    • jsdoc-dialect: jsdoc-typescriptjsdoc-closure

  4. 簡単にするためにパスのネストを使用します。

    • GLOB パスの最後のセグメントはファイル名パターンであり、 * ワイルドカードのみがサポートされます。

    • 最後のセグメントが ** の場合、ネストされたすべてのディレクトリとファイルと一致します。

    • 最上位レベルのコンテキストプロパティには /** パターンが必要です。

  5. 複数のパターンが同じファイル名に一致する場合、曖昧さを解消するために次のルールが使用されます:

    • ** セグメントを除いて、パスセグメント数が最大となるパターンを選択します。

    • 純粋なファイル名パターン、つまり ** または / で終わらないものを選択してください。

    • 最初に定義されたパターンを選択します。

サンプル

さまざまなフォルダーで複数のフレームワークを使うプロジェクトがあるとします。

異なるフレームワークを持つプロジェクト

プロジェクト内の各ファイルに対してコンテキスト認識型の支援を受けるには、次のコードを .ws-context に追加します。

{ "framework": "vue", "angular-template-syntax": "V_2", "src/**/app/**": { "framework": null, "app.component.html" : { "framework": "angular", "angular-template-syntax": "V_17" } }, "src/**/p*-editor/*.html" : { "framework" : "angular" } }
2026 年 6 月 8 日