黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 在以角度加載頁面之前加載數(shù)據(jù)的簡單方法

在以角度加載頁面之前加載數(shù)據(jù)的簡單方法

來源:千鋒教育
發(fā)布人:syq
時間: 2022-09-19 17:06:31 1663578391

  您可能已經(jīng)嘗試過在 app.component 的 ngOnInit 函數(shù)中執(zhí)行此操作,但意識到您的數(shù)據(jù)需要更早加載。您可能還嘗試過實(shí)現(xiàn)解析器,但意識到它們更適合單個路由的上下文。以下是在頁面加載之前加載數(shù)據(jù)的另一種方法,您可能還不知道:APP_INITIALIZER。

1

  定義

  在深入研究代碼之前,讓我們更好地了解APP_INITIALIZER是什么以及它是如何工作的。

  APP_INITIALIZER令牌允許您為應(yīng)用程序提供其他初始化函數(shù)。初始化函數(shù)(您可能已經(jīng)從名稱中收集到)在應(yīng)用初始化期間執(zhí)行。這些函數(shù)的返回類型必須是 void、Promise 或可觀察的。如果從這些函數(shù)中的任何一個返回 Promise 或可觀察量,則應(yīng)用程序僅在它們完成后才初始化。

  簡單來說,我喜歡把它看作是定義一個“啟動”階段,在這個階段中,你可以確保你的應(yīng)用正常運(yùn)行所需的所有核心數(shù)據(jù)在用戶開始與之交互之前都已加載。

  以下是可以在初始化函數(shù)中加載的內(nèi)容的幾個示例:

  翻譯

  經(jīng)過身份驗(yàn)證的用戶數(shù)據(jù)

  配置數(shù)據(jù)

  

  為簡單起見,讓我們以加載當(dāng)前經(jīng)過身份驗(yàn)證的用戶的數(shù)據(jù)為例。

  大多數(shù) Web 應(yīng)用在屏幕右上角顯示當(dāng)前用戶的個人資料圖片和名稱,因此讓我們實(shí)現(xiàn)類似的內(nèi)容。我將使用一個新的角度安裝(14.1)和引導(dǎo)5作為CSS:

2

  現(xiàn)在打開您的并導(dǎo)入引導(dǎo):styles.scss

3

  如果您使用的是不同版本的Angular,則某些導(dǎo)入和語法可能會有所不同,因此,如果您要遵循代碼,請注意這一點(diǎn)。

  奠定基礎(chǔ)

  讓我們從創(chuàng)建一個負(fù)責(zé)提供當(dāng)前用戶數(shù)據(jù)的服務(wù)開始,該服務(wù)現(xiàn)在將如下所示:

4

  這將是我們數(shù)據(jù)的默認(rèn)值,直到我們發(fā)出請求以獲取實(shí)際的當(dāng)前用戶數(shù)據(jù)。

  讓我們利用這些數(shù)據(jù)并將其顯示在屏幕的右上角。為了簡單起見,我們將直接在應(yīng)用程序組件中執(zhí)行此操作。

  首先,我們注入我們的用戶服務(wù):

5

  然后對于網(wǎng)頁:

6

  我強(qiáng)調(diào)了我們實(shí)際顯示用戶的姓名和個人資料圖片的重要部分。

  現(xiàn)在我們已經(jīng)奠定了基礎(chǔ),剩下要做的就是實(shí)現(xiàn)一個函數(shù)來獲取實(shí)際的用戶數(shù)據(jù),然后查看我們將在何時何地調(diào)用它。

  我不打算為此使用實(shí)際的后端服務(wù),而是在我們的資產(chǎn)文件夾中創(chuàng)建一個JSON文件,我們將在其中對數(shù)據(jù)進(jìn)行硬編碼:

7

  我們將定義負(fù)責(zé)獲取 內(nèi)部數(shù)據(jù)的函數(shù),如下所示:UserService

8

  不要忘記導(dǎo)入 中的 .HttpClientModuleAppModule

  實(shí)現(xiàn)APP_INITIALIZER

  正如我們在定義部分中了解到的那樣,APP_INITIALIZER讓我們定義其他初始化函數(shù),因此現(xiàn)在讓我們在單獨(dú)的文件中定義一個。

9

  您可以根據(jù)需要命名文件和函數(shù)。我主要堅(jiān)持使用更通用的名稱,因?yàn)槲彝ǔJ褂?如果您更喜歡以不同的方式執(zhí)行,則可以命名此函數(shù)或類似名稱(因?yàn)檫@是它唯一執(zhí)行的操作),然后創(chuàng)建單獨(dú)的函數(shù)來加載您可能需要的任何其他數(shù)據(jù)。forkJoinloadUserDataFactory

  現(xiàn)在,唯一要做的就是將此函數(shù)標(biāo)記為APP_INITIALIZER以便 Angular 知道在應(yīng)用初始化期間執(zhí)行它。為此,我們需要將以下提供程序添加到 AppModule 中的提供程序數(shù)組中:

10

  就是這樣。如果現(xiàn)在刷新頁面,您應(yīng)該會看到一個大約 1 秒的空白頁(由于我們在獲取 JSON 文件時添加的延遲),之后頁面將加載,并在右上角顯示實(shí)際的用戶名和頭像(在 user.json 文件中指定的用戶名和頭像)。

  需要考慮的事項(xiàng)

  可能最重要的一點(diǎn)是,如果從任何初始值設(shè)定項(xiàng)函數(shù)錯誤返回的可觀察值,則應(yīng)用將不再初始化。在我們的示例中,您可以通過重命名或臨時刪除文件來查看此操作,這將導(dǎo)致 Observable 失敗并顯示 404 錯誤。因此,您將被困在最初的空白頁上。

  若要阻止這種情況發(fā)生,請始終確保使用運(yùn)算符捕獲任何潛在錯誤,并為數(shù)據(jù)提供默認(rèn)值或?qū)⒂脩糁囟ㄏ虻教囟ǖ腻e誤頁面,您可以在其中向他們提供出錯的詳細(xì)信息以及如何繼續(xù)前進(jìn)。在我們的示例中,重定向到錯誤頁面可能如下所示 - 如果您想嘗試此操作,請不要忘記通過更新 AppModule 中提供程序的鍵來將 添加為依賴項(xiàng),然后創(chuàng)建新頁面及其路由:user.json catchError Router deps

11

  您看到 1 秒鐘的空白頁實(shí)際上是 .發(fā)生這種情況的原因是,由于在可觀察完成之前未初始化應(yīng)用,因此不會填充該元素,因此您看不到任何內(nèi)容。我通常做的是添加一個加載的圖像/文本作為元素的子級。當(dāng)應(yīng)用完成初始化時,你放入 其中的任何內(nèi)容都將被覆蓋。我給你一個例子,你可以在下面嘗試。如果要使用它,請考慮在初始化AppFactory函數(shù)中增加可觀察量的延遲。index.html<app-root><app-root><app-root>

12

  習(xí)慣使用 RxJS(除非你使用的是承諾),因?yàn)橥ǔG闆r下,你需要使用一堆 RxJS 函數(shù)和運(yùn)算符才能獲得正確的結(jié)果,是我經(jīng)常在這樣的情況下使用的。例如,在我們的示例中,我們只處理了用戶登錄時的情況,但如果用戶實(shí)際上是訪客,該怎么辦?在這種情況下,我們可能希望堅(jiān)持使用我們定義的默認(rèn)數(shù)據(jù)。在單個流中執(zhí)行此操作的一種方法看起來像這樣 - 請記住,這只是一個示例,由于我們尚未一起定義任何內(nèi)容,因此在當(dāng)前項(xiàng)目中不會開箱即用 :forkJoin iif switchMap map catchError tap authService

13

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
快速通道
久久精品免视看国产明星| 九九久久国产精品大片| 国产高清在线精品一区二区| 午夜欧美成人香蕉剧场| 国产一级强片在线观看| 人人干人人插| 国产一区二区精品久久91| 国产不卡高清| 国产成人精品影视| 精品久久久久久中文| 夜夜操天天爽| 青青久久国产成人免费网站| 色综合久久天天综合| 成人免费网站久久久| 尤物视频网站在线| 亚洲wwwwww| 久久精品欧美一区二区| 日韩中文字幕在线播放| 国产不卡在线看| 国产不卡高清| 精品国产一区二区三区久久久狼| 精品视频在线看| 黄视频网站免费看| 九九免费精品视频| 成人免费观看视频| 精品视频一区二区| 国产精品自拍亚洲| 在线观看成人网| 91麻豆精品国产片在线观看| 国产一区精品| 黄视频网站在线免费观看| 色综合久久天天综线观看| 国产高清视频免费观看| 日韩欧美一二三区| 欧美激情在线精品video| 亚洲女人国产香蕉久久精品| 欧美1区2区3区| 午夜家庭影院| 精品久久久久久中文| 日韩在线观看免费完整版视频| 欧美激情一区二区三区视频 | 国产91精品系列在线观看| 日韩免费在线视频| 日韩av成人| 九九精品影院| 黄视频网站在线看| 天天色色色| 99久久精品国产免费| 香蕉视频久久| 精品国产三级a∨在线观看| 国产国语在线播放视频| 欧美激情一区二区三区在线| 久久国产精品自线拍免费| 成人免费观看男女羞羞视频| 国产成人啪精品| 日韩在线观看免费| 999久久狠狠免费精品| 国产国语在线播放视频| 青草国产在线观看| 亚欧乱色一区二区三区| 国产极品精频在线观看| 精品毛片视频| 欧美激情一区二区三区中文字幕| 欧美1区2区3区| 国产伦精品一区二区三区在线观看| 日韩在线观看免费| 国产伦理精品| 精品视频一区二区三区免费| 成人免费网站视频ww| 国产一级生活片| 色综合久久天天综合观看| 国产成a人片在线观看视频| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日韩在线观看视频免费| 国产一区二区福利久久| 日韩中文字幕在线观看视频| 沈樵在线观看福利| 成人免费高清视频| 久久国产精品自线拍免费| 99色视频| 国产伦精品一区三区视频| 成人免费高清视频| 国产高清在线精品一区a| 国产伦理精品| 久久国产精品自线拍免费| 欧美一区二区三区在线观看| 99久久网站| 日本在线www| 国产美女在线观看| 午夜欧美成人香蕉剧场| 久久精品成人一区二区三区| 色综合久久天天综合绕观看| 欧美电影免费看大全| 黄色福利| 久久99这里只有精品国产| 久久99中文字幕久久| 欧美大片一区| 亚洲 欧美 成人日韩| 日日日夜夜操| 国产麻豆精品免费密入口| 成人免费观看视频| 午夜在线亚洲男人午在线| 日本特黄特色aaa大片免费| 久久99中文字幕| 999久久久免费精品国产牛牛| 韩国三级一区| 久久国产影视免费精品| 精品国产亚一区二区三区| 美女免费黄网站| 欧美电影免费看大全| 青青久久网| 成人免费一级毛片在线播放视频| 天天做人人爱夜夜爽2020毛片| 国产成人精品综合在线| 台湾毛片| 亚洲精品永久一区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产激情一区二区三区| 日韩一级黄色| 国产一区精品| 欧美另类videosbestsex高清| 黄视频网站在线免费观看| 国产成人啪精品| 精品视频在线观看一区二区三区| 一级毛片视频免费| 日韩女人做爰大片| 国产成人精品综合| 欧美电影免费| 久久国产精品自由自在| 九九九网站| 国产高清在线精品一区a| 青草国产在线观看| 97视频免费在线观看| 成人在免费观看视频国产| 精品视频在线观看视频免费视频| 成人高清视频免费观看| 欧美激情中文字幕一区二区| 色综合久久天天综合| 久久福利影视| 久草免费资源| 成人在免费观看视频国产| 成人av在线播放| 一级毛片视频免费| 在线观看成人网| 精品国产一区二区三区精东影业 | 高清一级片| 国产成+人+综合+亚洲不卡| 久久精品店| 国产成人精品影视| 久久久成人网| 国产91素人搭讪系列天堂| 日韩字幕在线| 黄视频网站免费观看| 久久久久久久久综合影视网| 九九免费高清在线观看视频 | 一级片片| 国产91素人搭讪系列天堂| 四虎影视久久| 日韩av片免费播放| 免费国产一级特黄aa大片在线| 麻豆午夜视频| 91麻豆tv| 可以免费在线看黄的网站| 欧美另类videosbestsex高清 | 成人免费一级毛片在线播放视频| 国产一区二区精品久久91| 国产伦久视频免费观看 视频| 九九免费精品视频| 精品视频免费在线| 九九热国产视频| 国产精品自拍在线| 四虎影视久久| 欧美a免费| 日韩av成人| 久久99中文字幕久久| 亚洲女初尝黑人巨高清在线观看| 青青久久国产成人免费网站| 欧美爱色| 美女免费黄网站| 久久久成人网| 成人免费网站视频ww| 欧美爱爱网| 久久福利影视| 精品在线免费播放| 亚洲爆爽| 国产福利免费观看| 精品国产香蕉伊思人在线又爽又黄| 九九干| 国产激情一区二区三区| 国产视频一区在线| 久久久成人网| 国产精品自拍在线观看| 可以在线看黄的网站| 沈樵在线观看福利| 麻豆午夜视频| 欧美a免费| 午夜精品国产自在现线拍| 青青久热| 91麻豆国产福利精品| 四虎影视库|