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 的空项目。
在命令行 shell 或嵌入式 终端 (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 中:






