当前位置:首页 > VUE

vue实现pwa

2026-02-10 10:25:13VUE

Vue 实现 PWA 的步骤

创建 Vue 项目

使用 Vue CLI 创建一个新项目,确保 Vue CLI 版本为 3.0 或更高。运行以下命令:

vue create my-pwa-app

选择默认配置或手动配置,确保包含 PWA 支持。

添加 PWA 插件

如果创建项目时未选择 PWA 支持,可以通过以下命令添加:

vue add pwa

该插件会自动生成 registerServiceWorker.js 文件和配置。

配置 PWA

vue.config.js 中配置 PWA 相关参数:

module.exports = {
  pwa: {
    name: 'My PWA App',
    themeColor: '#4DBA87',
    msTileColor: '#000000',
    appleMobileWebAppCapable: 'yes',
    appleMobileWebAppStatusBarStyle: 'black',
    workboxPluginMode: 'GenerateSW',
    workboxOptions: {
      skipWaiting: true,
      clientsClaim: true,
    }
  }
}

注册 Service Worker

src/main.js 中导入并注册 Service Worker:

vue实现pwa

import './registerServiceWorker'

自定义 Service Worker

如果需要自定义 Service Worker 行为,可以修改 registerServiceWorker.js 文件:

import { register } from 'register-service-worker'

register(`${process.env.BASE_URL}service-worker.js`, {
  ready() {
    console.log('Service worker is active.')
  },
  registered() {
    console.log('Service worker has been registered.')
  },
  cached() {
    console.log('Content has been cached for offline use.')
  },
  updatefound() {
    console.log('New content is downloading.')
  },
  updated() {
    console.log('New content is available; please refresh.')
  },
  offline() {
    console.log('No internet connection found. App is running in offline mode.')
  },
  error(error) {
    console.error('Error during service worker registration:', error)
  }
})

配置 Manifest

public/manifest.json 中配置应用清单:

{
  "name": "My PWA App",
  "short_name": "PWA",
  "theme_color": "#4DBA87",
  "background_color": "#000000",
  "display": "standalone",
  "scope": "/",
  "start_url": "/",
  "icons": [
    {
      "src": "/img/icons/android-chrome-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/img/icons/android-chrome-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

构建与测试

运行以下命令构建生产环境版本:

vue实现pwa

npm run build

使用 serve 测试构建结果:

serve -s dist

打开浏览器并检查 Lighthouse 报告,确保 PWA 功能正常。

部署到服务器

dist 文件夹内容部署到支持 HTTPS 的服务器。确保服务器配置正确,以便 Service Worker 能够注册和运行。

离线功能测试

使用 Chrome DevTools 的 Application 面板,检查 Service Worker 是否已注册,并测试离线模式下的应用行为。

通过以上步骤,Vue 项目即可实现 PWA 功能,支持离线访问和原生应用体验。

标签: vuepwa
分享给朋友:

相关文章

vue实现本地数据存储

vue实现本地数据存储

使用 localStorage 或 sessionStorage Vue 中可以直接调用浏览器提供的 localStorage 或 sessionStorage API 进行数据存储。localSto…

vue实现过程

vue实现过程

Vue 的实现过程 Vue 的实现过程可以分为多个核心模块,包括响应式系统、虚拟 DOM、模板编译等。以下是 Vue 的主要实现过程分析。 响应式系统 Vue 的响应式系统基于 Object.def…

vue实现xss

vue实现xss

XSS 攻击简介 XSS(跨站脚本攻击)是一种常见的安全漏洞,攻击者通过注入恶意脚本到网页中,当其他用户访问该页面时,脚本会在其浏览器中执行,可能导致数据泄露或会话劫持。 Vue 中的 XSS…

vue alert实现

vue alert实现

使用 Vue 实现 Alert 组件 在 Vue 中实现 Alert 组件可以通过自定义组件或结合第三方库完成。以下是几种常见方法: 自定义 Alert 组件 创建一个可复用的 Alert 组件,通…

vue 实现打印

vue 实现打印

Vue 实现打印功能的方法 在Vue项目中实现打印功能,可以通过以下几种方式实现: 使用window.print()方法 通过调用浏览器的原生打印API实现基础打印功能,适用于简单内容打印。…

vue实现水印

vue实现水印

Vue 实现水印的方法 使用 CSS 背景图 通过 CSS 的 background-image 和 background-repeat 属性实现水印效果。创建一个包含水印文本的 Canvas,将其转…