当前位置:首页 > React

react 实现pwa

2026-01-26 15:57:22React

React 实现 PWA 的步骤

使用 Create React App (CRA) 初始化项目

Create React App 内置了对 PWA 的支持,只需在初始化项目时添加模板即可:

npx create-react-app my-pwa --template cra-template-pwa

配置 Service Worker

CRA 生成的 src/index.js 文件中默认注释了 Service Worker 注册代码,取消注释即可启用:

import * as serviceWorkerRegistration from './serviceWorkerRegistration';

serviceWorkerRegistration.register();

自定义 manifest.json

修改 public/manifest.json 文件以定义应用名称、图标等元数据:

{
  "short_name": "My PWA",
  "name": "My Progressive Web App",
  "icons": [
    {
      "src": "logo192.png",
      "type": "image/png",
      "sizes": "192x192"
    },
    {
      "src": "logo512.png",
      "type": "image/png",
      "sizes": "512x512"
    }
  ],
  "start_url": ".",
  "display": "standalone",
  "theme_color": "#000000",
  "background_color": "#ffffff"
}

优化离线体验

src/serviceWorkerRegistration.js 中可自定义缓存策略:

react 实现pwa

export function register(config) {
  if ('serviceWorker' in navigator) {
    window.addEventListener('load', () => {
      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
      navigator.serviceWorker.register(swUrl).then(registration => {
        registration.update();
      });
    });
  }
}

添加安装提示

在 React 组件中添加监听 beforeinstallprompt 事件:

useEffect(() => {
  window.addEventListener('beforeinstallprompt', (e) => {
    e.preventDefault();
    setDeferredPrompt(e);
  });
}, []);

构建生产环境

PWA 功能需要在 HTTPS 环境下测试,使用以下命令构建:

npm run build
serve -s build

验证 PWA 功能

使用 Lighthouse 工具进行验证:

react 实现pwa

  1. 在 Chrome 开发者工具中选择 Lighthouse
  2. 勾选 PWA 选项
  3. 运行测试确保所有核心指标通过

高级自定义

如需更精细控制,可手动配置 webpack:

// craco.config.js
module.exports = {
  webpack: {
    configure: {
      plugins: [
        new WorkboxWebpackPlugin.InjectManifest({
          swSrc: './src/sw.js',
          swDest: 'service-worker.js'
        })
      ]
    }
  }
}

更新策略

src/sw.js 中实现自定义缓存策略:

self.addEventListener('install', (event) => {
  event.waitUntil(
    caches.open('v1').then((cache) => {
      return cache.addAll([
        '/',
        '/index.html',
        '/static/js/main.chunk.js'
      ]);
    })
  );
});

部署注意事项

确保服务器正确配置:

  • 添加 HTTPS 支持
  • 设置正确的 MIME 类型
  • 配置适当的 HTTP 头(如 CSP)

标签: reactpwa
分享给朋友:

相关文章

react如何更新

react如何更新

更新 React 项目的方法 检查当前 React 版本 在项目根目录的 package.json 文件中查看 react 和 react-dom 的版本号。也可以通过命令行运行以下命令查看: np…

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

如何记忆react

如何记忆react

理解核心概念 React的核心概念包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。掌握这些基础概念是记忆React的关键。组件是React应用的构建块,分为…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…