React 支持
React 是一个用于通过封装的组件构建复杂交互式用户界面的 JavaScript 库。 在 React 官方网站 了解有关该库的更多信息。
PyCharm 与 React 集成,可为您的应用程序在配置、编辑、代码检查、运行、调试和维护方面提供帮助。
在开始之前
创建新的 React 应用程序
生成 React 应用程序
从主菜单中点击 。 或者,在欢迎界面的左侧窗格中,点击 。
新建 项目 对话框 打开。
在左侧窗格,选择 React。
在右侧窗格中:
指定用于存储与项目相关文件的文件夹路径。
在 Node 运行时 字段中,指定要使用的 Node.js 运行时。 从列表中选择已配置的运行时,或选择 添加 来配置新的运行时。
在 React CLI 列表中,选择要使用的生成器。
接受默认的
npx create-vite,以便预设好您的开发环境以使用 Vite。选择
npx create-react-app,以便预设好您的开发环境以使用 webpack、Babel 和 ESLint。如需使用自定义的已下载生成器,请点击 选择 ,并在打开的对话框中指定生成器的路径。

可选:
要使用 TSX 而非 JSX,请选择 创建 TypeScript 项目 复选框。 PyCharm 将为您的应用程序生成 .tsx 文件以及一个 tsconfig.json 配置文件。
当您点击 创建 时,PyCharm 会生成一个特定于 React 的项目,其中包含所有必需的配置文件,并下载所需的依赖项。 PyCharm 还会创建 npm start 和 JavaScript Debug 配置,使用默认设置来运行或调试您的应用程序。
在空的 PyCharm 项目中安装 React
在这种情况下,您需要按照下文 构建 React 应用程序 中的说明自行配置构建流水线。 在 React 官方网站 了解将 React 添加到项目的更多信息。
创建空白 PyCharm 项目
从主菜单中点击 。 或者,在欢迎界面的左侧窗格中,点击 。
新建 项目 对话框 打开。
在左侧窗格,选择 空 项目。 在右侧窗格,指定应用程序文件夹并点击 创建。
在空项目中安装 React
打开您将使用 React 的空项目。
在内置的 终端 (Alt+F12 )中,键入:
npm install --save react react-dom
从现有的 React 应用程序开始
要继续开发现有的 React 应用程序,请在 PyCharm 中将其打开并下载所需的依赖项。
打开您计算机上已有的应用源代码
在 欢迎屏幕 屏幕左侧窗格中点击 打开 ,或在主菜单中选择 。 在打开的对话框中,选择您的源代码所在的文件夹。
从您的版本控制系统中检出应用源代码
在 欢迎屏幕 屏幕左侧窗格中点击 克隆。
或者,从主菜单中选择 或 或 。
在主菜单中,您可能会看到与项目关联的其他任何版本控制系统,而不是 Git。 例如, Mercurial 或 Perforce。
在打开的对话框中,从列表中选择您的版本控制系统,并指定要从中检出的应用源代码的存储库。 欲了解详细信息,请参阅 检出项目(克隆)。
下载依赖项
在弹出窗口中点击 运行 'npm install' 或 运行 'yarn install':

您可以使用 npm、 Yarn 1 或 Yarn 2 ,详情请参阅 npm 和 Yarn。
或者,在编辑器或 项目 工具窗口 (Alt+1) 中,从 package.json 的上下文菜单选择 运行 'npm install' 或 运行 'yarn install'。
项目安全
当您打开在 PyCharm 之外创建并导入到其中的项目时,PyCharm 会显示一个对话框,您可以在其中决定如何处理包含不熟悉源代码的该项目。

选择以下选项之一:
在安全模式中预览 :在这种情况下, PyCharm 以预览模式打开项目。 这意味着您可以浏览项目的源代码,但无法运行任务和脚本,也不能运行/调试您的项目。
PyCharm 会在编辑器区域顶部显示通知,您可以随时点击 信任项目… 链接加载项目。
信任项目 :在这种情况下, PyCharm 打开并加载项目。 这意味着项目已初始化、项目插件已解析、已添加依赖项,并且所有 PyCharm 功能均可用。
不打开 :在这种情况下, PyCharm 不打开项目。
在 项目安全 了解更多信息。
代码补全
PyCharm 在 JavaScript 代码中为 React API 和 JSX 提供代码补全。 代码补全适用于 React 方法、React 特定的属性、HTML 标签和组件名称、 React 事件 、组件属性等。 详细信息请参阅 React 官方网站。
要获得 React 方法和 React 特定属性的代码补全,您的项目中需要包含 react.js 库文件。 通常该库已位于您的 node_modules 文件夹中。
补全 React 方法、属性和事件
默认情况下,您在键入时会自动显示代码补全弹出窗口。 例如:

在 JSX 标签中,PyCharm 为 React 特定的属性 (例如 className 或 classID )以及 非 DOM 属性 (例如 key 或 ref )提供编码辅助。 此外,自动补全同样适用于项目 CSS 文件中定义的类名:

所有 React 事件 (例如 onClick 或 onChange )也可与花括号  ={} 或引号 "" 一起自动补全。

默认情况下,会插入花括号。 您可以让 PyCharm 始终添加引号,或根据 TypeScript 定义文件(d.ts) 中的类型在引号与花括号之间进行选择。 要更改默认设置,请打开 设置 对话框(Ctrl+Alt+S ),转到 ,并从 为 JSX 属性添加引号 列表中选择适用的选项。

补全同样适用于花括号内的 JavaScript 表达式。 这适用于您定义的所有方法和函数:

补全 HTML 标签和组件名称
PyCharm 为您在 JavaScript 的方法中或在其他组件内定义的 HTML 标签和组件名称提供代码补全:

补全同样适用于使用 ES6 风格语法导入的组件:

补全组件属性
PyCharm 为使用 propTypes 定义的组件属性提供代码补全,并对其进行解析,使您可以快速跳转或预览其定义:

当您自动补全组件名称时,PyCharm 会自动添加其所有必需属性。 如果在使用组件时缺少某些必需属性,PyCharm 会向您发出警告。
向函数式组件添加 state
PyCharm 通过在特定位置定义未解析的引用,建议使用快速修复将 useState Hook 添加到函数式 React 组件。 PyCharm 会为 useState Hook 自动插入 import 语句。 state 的类型会根据定义引用的位置进行推断。
将插入符号置于未解析的引用处,按 Alt+Enter ,然后从列表中选择 在 < functional component name> 组件中创建 <unresolved reference> 状态。
添加 props
PyCharm 通过在特定位置定义未解析的引用,建议使用快速修复向 React 组件添加新属性。
PyCharm 会生成包含所添加属性的组件代码。 属性的类型会根据对应引用的定义位置进行推断。
该快速修复同样可应用于基于类的组件。 在此类情况下,插入新属性后,未解析的引用会替换为 this.props.${reference_name}。
将插入符号置于未解析的引用处,按 Alt+Enter ,然后从列表中选择 在 <component name> 组件中创建 <unresolved reference> prop。

将 HTML 属性转换为 JSX
当您复制一段包含 class 属性或 on 事件处理程序的 HTML 代码并将其粘贴到 JSX 中时,PyCharm 会自动将这些属性替换为 React 特定的属性(className、 onClick、 onChange 等)。

这同样适用于 TSX:

当您复制一段包含单标签的 HTML 代码并将其粘贴到 JSX 中时,PyCharm 会在每个单标签的末尾自动添加一个斜杠 /。

若要按原样将 HTML 代码复制到 JSX 或 TSX,请使用 Paste Simple Ctrl+Alt+Shift+V ,或打开 设置 对话框(Ctrl+Alt+S ),转到 设置页面,并清除 在将代码粘贴到 JSX 文件时闭合 HTML 单标签 和 在粘贴到 JSX 文件时转换 HTML 属性名 复选框。
React 代码片段
PyCharm 随附了超过 50 个代码片段的集合,这些片段可展开为 React 应用中经常使用的不同语句和代码块,其中包括 React Hooks。 下面的示例展示了如何使用 rcjc 缩写来创建一个定义新 React 组件的类:

从片段创建 React 代码构造
在编辑器中键入所需的缩写并按 Tab。
按 Ctrl+J 并选择相关片段。 要缩小搜索范围,请开始键入该缩写,然后在 补全列表 中选择它。
有关详细信息,请参阅 实时模板。
查看所有可用的 React 片段列表
在 设置 对话框(Ctrl+Alt+S )中,点击 活动模板 (位于 编辑器 下),然后展开 React 或 React 钩子 节点。

React 指令
PyCharm 能识别并高亮显示文件顶部和函数内的以下 React 指令:
在 JSX 中使用 Emmet
借助 PyCharm,您不仅可以在 HTML 中使用 Emmet ,还可以在 JSX 代码中使用它,并利用一些 React 的特殊规则。 例如,缩写 div.my-class 在 JSX 中会展开为 <div className=”my-class"></div> ,而不会像在 HTML 中那样展开为 <div class=”my-class"></div>:

在 React 应用程序中导航
除了 基本导航 外,PyCharm 还可帮助您在 React 特定的代码元素之间跳转。
使用结构视图进行导航
结构 工具窗口和 结构 弹出窗口可为您提供更清晰的 React 代码结构洞察,便于导航,并有助于更好地理解 React 组件及相关元素。
结构 工具窗口显示以下 React 特定的节点:
对 React 应用程序进行代码检查
所有 PyCharm 内置的针对 JavaScript 和 HTML 的 代码检查 同样适用于 JSX 代码。 PyCharm 会在存在未使用的变量和函数、缺少闭合标签、缺少语句等情况下提醒您。

对于某些检查,PyCharm 提供快速修复,例如建议添加缺少的方法。 要查看快速修复弹出窗口,请按 Alt+Enter。
要自定义检查列表,请打开 设置 对话框(Ctrl+Alt+S ),转到 Editor | Inspections,并禁用您不想看到的检查或更改其严重性级别。 请从 禁用与启用检查 和 更改检查严重性 中了解更多信息。
ESLint
除提供内置代码检查外,PyCharm 还针对 JSX 代码集成了 Linter,例如 ESLint。 ESLint 提供了广泛的检查规则,并且可以通过插件进行扩展。 在您键入时,PyCharm 会直接在编辑器中显示由 ESLint 报告的警告和错误。 借助 ESLint,您还可以使用 JavaScript Standard Style ,并 对 TypeScript 代码进行 Lint。
有关更多信息,请参见 ESLint。
要让 ESLint 正确理解 React JSX 语法,您需要 eslint-plugin-react。 有了该插件,例如当未为 React 组件设置显示名称,或使用了某些危险的 JSX 属性时,您会收到警告:

在 React 项目中安装并配置 ESLint
在内置的 终端 ( )中,键入:
npm install --save-dev eslint npm install --save-dev eslint-plugin-react向您的项目添加一个 ESLint 配置文件。
在 设置 对话框(Ctrl+Alt+S )中,转到 语言与框架 | JavaScript | 代码质量工具 | ESLint ,并选择 自动 ESLint 配置。 PyCharm 会在您的项目 node_modules 文件夹中自动定位 ESLint,然后使用 .eslintrc.* 文件中的默认配置,或使用 package.json 中的
eslintConfig属性。或者,选择 手动 ESLint 配置 以使用自定义 ESLint 包和配置。
详情请参阅 在 PyCharm 中激活并配置 ESLint。
.eslintrc 结构示例(ESLint 1.x 搭配 react 插件)
在
ecmaFeatures对象中,添加"jsx" = true。 在此,您还可以指定希望使用的其他语言特性,例如 ES6 类、模块等。在
plugins对象中,添加react。在
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 官方网站 了解有关 ESLint 及 react 插件配置的更多信息。
构建 React 应用程序
您需要设置构建过程,如果您 在现有 PyCharm 项目中安装了 React。 在 React 官方网站 了解为您的 React 应用程序配置构建流水线的各种方式。
在一个项目中使用多个框架
有时,您可能需要在一个 React 项目中使用其他框架。
要在每个文件中获得上下文感知的编码辅助,请创建一个配置文件 .ws-context ,并指定每个特定的文件或文件夹应使用哪种框架。 该文件中的设置将覆盖默认配置。
在项目根目录中,从上下文菜单中选择 新建 | 文件 ,并将文件名指定为
.ws-context。在
.ws-context中,使用两种类型的属性:<context-name>,其值为上下文值字符串带有上下文详细信息对象的 GLOB 模式
使用以下上下文值:
framework:vue、angular、react、svelte、astroangular-template-syntax:V_2V_17nextjs-project:nextjsastro-project:astrovue-store:vuexpiniavue-class-component-library:vue-class-component、vue -property-decorator、vue-facing-decoratorjsdoc-dialect:jsdoc-typescriptjsdoc-closure
为简单起见,请使用路径嵌套。
GLOB 路径的最后一段是文件名模式,仅支持
*通配符。如果最后一段是
**,则它会匹配所有嵌套的目录和文件。顶层上下文属性应使用
/**模式。
当多个模式匹配同一文件名时,将使用以下规则来消除歧义:
选择路径段数量最多的模式,但不包括
**段。选择纯文件名模式,即不以
**或/结尾的模式。选择最先定义的模式。
示例
假设您有一个项目,在各个文件夹中使用了多个框架。

要为项目中的每个文件获得上下文感知的编码辅助,请将以下代码添加到 .ws-context 中:









