当前位置:首页 > 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 中可自定义缓存策略:

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 工具进行验证:

  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'
      ]);
    })
  );
});

部署注意事项

确保服务器正确配置:

react 实现pwa

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

标签: reactpwa
分享给朋友:

相关文章

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义,…

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以下…

react项目如何

react项目如何

创建React项目 使用create-react-app工具快速初始化项目。确保已安装Node.js(建议版本≥12.0.0),运行以下命令生成新项目: npx create-react-app m…

react如何重启

react如何重启

重启 React 应用的方法 重新加载当前页面 使用 window.location.reload() 强制刷新页面,这会重新加载整个应用并重置所有状态。 window.location.rel…

react如何建项目

react如何建项目

创建React项目的几种方法 使用官方工具Create React App(CRA) npx create-react-app my-app 这条命令会创建一个名为my-app的新React项目,包含…