什么场景适合用 React
- 你在构建 popup、options、sidebar 或新标签页这类组件丰富的 UI 界面。
- 你希望在扩展页面与 content script UI 挂载之间复用组件。
- 你已经在 web 项目里使用 React,希望在扩展中沿用同样的开发模式。
模板示例
new-react

content-react

new-react-router

在现有扩展中使用
按下面的步骤把 React 添加到现有扩展。安装
安装 React 运行时依赖:react-refresh 和 @rspack/plugin-react-refresh。两者都作为 extension-develop 的依赖一起发布,所以一次正常的安装已经能解析到它们。当其中一个无法被解析时,构建无法启动,错误信息会指出需要安装哪些包。错误里的安装命令会按你项目使用的包管理器来书写。
配置
常见的 React 文件名模式:- JavaScript:
*.jsx - TypeScript:
*.tsx
开发期行为
在开发模式下,当 Extension.js 检测到 React 时,会启用 React refresh 集成。- Extension.js 使用
react-refresh和@rspack/plugin-react-refresh来提供 refresh 行为。 - 如果这些 refresh 包无法从你的项目或
extension-develop中解析到,构建将无法启动,并打印相应的安装命令。Extension.js 不会替你安装它们,也不会要求你重启。 - Extension.js 会应用 React 相关的别名,以确保打包结果里只有一份 React/runtime 实例。
用法示例
在新标签页扩展中
页面入口示例:在 content_script 文件中
对于 content script,把 React 渲染到一个注入的根元素里:
下一步
- 当你需要一个侧边栏面板加上一个 content script 时,从 React 模板(
--template=react)开始。 - 进一步了解 TypeScript 支持。
- 了解 Extension.js 如何处理 Sass 模块。

