站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        本篇文章帶大家Angular PWA 漸進式 Web 應(yīng)用,分享一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目,希望對大家有所幫助!

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        PWA 有如下一些優(yōu)點:

        • 無連接(offline)狀態(tài)下的可用性
        • 加載速度快
        • 屏幕快捷方式

        如果情況允許,還是推薦大家將其用于項目中的,提升性能,也提升用戶的體驗。

        更加詳細的說明,可以查看 MDN PWA。Talk is Cheap 接下來我們就實戰(zhàn)看一下效果。【相關(guān)教程推薦:《angular教程》】

        1 準備工作

        npm i -g @angular/cli@latest ng new pwa-demo # npm i -g json-server # npm i -g http-server

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        修改 package.json 方便我們啟動項目

        {   ....,   "scripts": {     ...,     "json": "json-server data.json -p 8000",     "build:pwa": "ng build",     "start:pwa": "http-server -p 8001 -c-1 dist/pwa-demo"   } }

        新建一個 data.json 文件來模擬數(shù)據(jù),放在根目錄即可

        {   "posts": [{ "id": 1, "title": "json-server", "author": "typicode" }],   "comments": [{ "id": 1, "body": "some comment", "postId": 1 }],   "profile": { "name": "typicode" } }

        2 寫一個小 demo 來模擬從后端拿數(shù)據(jù)

        ng g s services/data
        // data.service.ts // 記得在 app.module.ts 中引入 HttpClientModule import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs';  @Injectable({   providedIn: 'root' }) export class DataService {   dataUrl = 'http://localhost:8000/posts';    constructor(private http: HttpClient) {}    // 實際項目中最好別用 any,可以根據(jù)返回的數(shù)據(jù)類型定義對應(yīng)的 interface   public getPosts(): Observable<any> {     return this.http.get(this.dataUrl);   } }

        接下來我們修改 app.component.tsapp.component.html

        // app.component.ts import { Component, OnInit } from '@angular/core'; import { DataService } from './services/data.service';  @Component({   selector: 'app-root',   templateUrl: './app.component.html',   styleUrls: ['./app.component.scss'] }) export class AppComponent implements OnInit {   title = 'pwa-demo';   posts = [];    constructor(private dataService: DataService) {}    ngOnInit(): void {     this.dataService.getPosts().subscribe((res) => {       this.posts = res;     });   } }
        <div class="app">   <h1>Hello PWA</h1>   <br />   {{ posts | json }} </div>

        到目前為止如果項目正常啟動起來應(yīng)該能看到如下頁面

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        3 斷網(wǎng)

        做完了準備工作,現(xiàn)在我們來斷網(wǎng)看看會發(fā)生什么,按 F12 選擇 NetWork 后選擇 Offline

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        刷新后會發(fā)現(xiàn)我們的頁面已經(jīng)不能正常加載了

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        4 PWA 登場

        現(xiàn)在就輪到我們的 PWA 登場了。

        首先安裝 pwa

        ng add @angular/pwa

        安裝完成之后大家會發(fā)現(xiàn)這些文件發(fā)生了變化

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        在這里我們主要關(guān)注 ngsw-config.json 這個文件即可,別的文件發(fā)生的變化都很好理解,大家一看便知

        通過一個實戰(zhàn),來看看PWA怎么應(yīng)用于Angular項目

        在這個文件中定義了這些要被緩存的文件:

        • favicon.ico
        • index.html
        • manifest.webmanifest
        • JS and CSS bundles
        • 所有在 assets 下的文件

        接下來我們將請求的接口配置到 ngsw-config.json 中來,

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品久久自在自线观看| 精品99久久aaa一级毛片| 嫩草影院久久国产精品| 亚洲国产精品13p| 亚洲日韩精品欧美一区二区| 国产精品原创巨作av女教师| 久久久久九国产精品| 91精品国产91热久久久久福利| 久久精品夜夜夜夜夜久久| 日韩精品成人a在线观看| 国产精品久久久久一区二区三区 | 国产精品免费大片| 亚洲无码精品浪潮| 免费看一级毛片在线观看精品视频 | 久久精品国产一区二区三区日韩| 97精品人妻系列无码人妻 | 九九久久精品无码专区| 国产成人亚洲精品影院| 2022精品国偷自产免费观看| 国产精品久久久久久福利69堂| 久久精品aⅴ无码中文字字幕重口| 中文字幕av日韩精品一区二区 | 久久亚洲精品无码AV红樱桃| 亚洲av无码国产精品色午夜字幕| 亚洲精品一级无码鲁丝片 | 久久亚洲精品国产精品| 亚洲精品尤物yw在线影院| 亚洲精品国产精品乱码不卡| 亚洲AV永久无码精品一区二区 | 青草青草久热精品视频在线网站 | 久久久精品2019免费观看| 亚洲精品欧美二区三区中文字幕| 亚洲国产精品人人做人人爱| 欧美日韩精品一区二区视频 | 日韩欧美精品不卡| 国产成人精品久久一区二区三区av | 99精品国产福利在线观看| 国产精品99久久久久久宅男| 88国产精品欧美一区二区三区| 中文精品一卡2卡3卡4卡| 国产精品九九久久免费视频 |