Create React App 中文文档

Create React App 中文文档

  • 快速入门
  • 帮助
  • GitHub

›样式和资源

Welcome

  • 关于文档

快速入门

  • 入门
  • 文件夹结构
  • 可用的 Scripts
  • 支持的浏览器和特性
  • 更新到新版本

开发

  • 编辑器设置
  • 隔离开发组件
  • 分析 Bundle (包) 大小
  • 在开发环境中使用 HTTPS

样式和资源

  • 添加一个样式表
  • 添加 CSS Modules
  • 添加 Sass
  • PostCSS(后处理 CSS)
  • 添加图片,字体和文件
  • 使用 public 文件夹
  • 代码拆分(Code Splitting)

构建 App

  • 安装依赖项
  • 导入组件
  • 使用全局变量
  • 添加 Bootstrap
  • 添加 Flow
  • 添加 TypeScript
  • 添加 Relay
  • 添加 Router(路由)
  • 环境变量
  • 制作渐进式 Web 应用程序(PWA)
  • 创建生产构建

测试

  • 运行测试
  • 调试测试

后端集成

  • 在开发环境中代理 API 请求
  • 使用AJAX请求获取数据
  • 集成后端 API
  • Title & Meta 标签

部署

  • 部署

高级用法

  • 我可以使用 Decorators 吗?
  • 预渲染静态 HTML
  • 高级配置
  • Ejecting 的替代方案

支持

  • 故障排除
Edit

使用 public 文件夹

注意:此功能适用于 react-scripts@0.5.0 及更高版本。

更改HTML

public 文件夹包含 HTML 文件,因此你可以对其进行调整,例如,设置页面标题。带有编译代码的 <script> 标记将在构建过程中自动添加到该标记中。

在模块系统之外添加静态资源

你还可以将其他资源添加到 public 文件夹。

请注意,我们通常建议你改为在 JavaScript 文件中导入资源。例如,请参阅有关 添加一个样式表 以及 添加图片和字体 部分。这种机制提供了许多好处:

  • 脚本和样式被压缩并打包在一起,以避免额外的网络请求。
  • 缺少文件会导致编译错误,而不是给用户 404 错误。
  • 结果文件名包含内容哈希,因此你无需担心浏览器会缓存旧版本。

但是,你可以使用 escape hatch(逃生舱) ,在模块系统之外添加资源。

如果将文件放入 public 文件夹,Webpack 将 不会 处理它。相反,它将被复制到构建文件夹中。要引用 public 文件夹中的资源,需要使用名为 PUBLIC_URL 的特殊变量。

在 index.html 中,你可以像这样使用它:

<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">

只有 %PUBLIC_URL% 前缀才能访问 public 文件夹中的文件。如果你需要使用 src 或 node_modules 中的文件,则必须将其复制到 public 文件夹,以显式指定将该文件作为构建的一部分的意图。

当你运行 npm run build 时,Create React App 将使用正确的绝对路径替换 %PUBLIC_URL% ,这样即使你使用客户端路由或将其托管在 non-root 上,你的项目也能正常工作。

在 JavaScript 代码中,你可以使用 process.env.PUBLIC_URL 用于类似目的:

render() {
  // 注意:这是一个逃生舱(escape hatch),应该谨慎使用!
  // 通常我们建议使用`import`来获取资源的 URL 
  // 如我们上一节 “添加图片和字体”中所述。
  return <img src={process.env.PUBLIC_URL + '/img/logo.png'} />;
}

请记住这种方法的缺点:

  • public 文件夹中的所有文件都不会进行后处理或压缩。
  • 在编译时不会调用丢失的文件,并且会导致用户出现 404 错误。
  • 结果文件名不包含内容哈希值,因此你需要添加查询参数或在每次更改时重命名它们(,以便清除浏览器缓存)。

何时使用 public 文件夹 When to Use the public Folder

通常我们建议从 JavaScript 导入 stylesheets ,图片和字体 。 public文件夹可用作许多不常见情况的变通方法:

  • 你需要在构建输出中具有特定名称的文件,例如 manifest.webmanifest 。
  • 你有数千张图片,需要动态引用它们的路径。
  • 你希望在打包代码之外包含一个像 pace.js 这样的小脚本。
  • 某些库可能与 Webpack 不兼容,你没有其他选择,只能将其包含为 <script> 标记。

请注意,如果添加声明全局变量的 <script> ,则还需要阅读有关使用它们的下一部分。

← PreviousNext →
  • 更改HTML
  • 在模块系统之外添加静态资源
  • 何时使用 public 文件夹 When to Use the public Folder
Create React App 中文文档
文档
快速入门学习 React
社区
Stack OverflowSpectrumTwitter
更多
GitHubStar
Facebook Open Source
Copyright © 2018 Facebook Inc.