nodejs + vue-cli3.0 + pwa 初体验(一)

什么是pwa?

Progressive Web App, 简称 PWA,是提升 Web App 的体验的一种新方法,能给用户原生应用的体验。

PWA 能做到原生应用的体验不是靠特指某一项技术,而是经过应用一些新技术进行改进,在安全、性能和体验三个方面都有很大提升,PWA 本质上是 Web App,借助一些新技术也具备了 Native App 的一些特性,兼具 Web App 和 Native App 的优点。

PWA 的主要特点包括下面三点:

  • 可靠 – 即使在不稳定的网络环境下,也能瞬间加载并展现
  • 体验 – 快速响应,并且有平滑的动画响应用户的操作
  • 粘性 – 像设备上的原生应用,具有沉浸式的用户体验,用户可以添加到桌面

PWA 本身强调渐进式,并不要求一次性达到安全、性能和体验上的所有要求。

实现pwa的大体路线

1.用现有的vue项目执行脚本:

vue add pwa

2.vue工程下面会构建如下文件

3.修改registerServiceWorker.js文件,做兼容处理;

/* eslint-disable no-console */

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

if ('serviceWorker' in window.navigator && process.env.NODE_ENV === 'production') { 
    register(`${process.env.BASE_URL}service-worker.js`, {
        ready() {
            console.log(
                'App is being served from cache by a service worker.\n' +
        'For more details, visit https://goo.gl/AFskqB'
            );
        },
        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);
        }
    });
}

4.手动再public文件夹下面新增manifest.json文件;

{
    "name": "PWA-DEMO1", 
    "short_name": "DEMO", 
    "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"
      }
    ],
    "id": "/main",
    "start_url": "./main",
    "display": "standalone",
    "background_color": "#000000",
    "theme_color": "#4DBA87"
}

 manifest.json是什么?移步manifest.json - Mozilla | MDN

这样一个简单的pwa案例就基本已经搭好了;

把vue工程打包丢进node-express里面,配置相关的express路由,在浏览器中打开nodejs开放的ip出现下载图标,到这儿pwa的简单配置就OK了

下期我会将pwa的manifest.json和server-worker细节方面做一个描述

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值