Angular9 路由器教程

2020-07-07 13:45 更新

雖然“快速上手:“英雄指南”教程介紹了 Angular 中的一般概念,而本篇 “路由器教程”詳細介紹了 Angular 的路由能力。本教程將指導你在基本的路由器配置之上,創(chuàng)建子路由、讀取路由參數、惰性加載 NgModules、路由守衛(wèi),和預加載數據,以改善用戶體驗。

概覽

本章要講的是如何開發(fā)一個帶路由的多頁面應用。 接下來會重點講解了路由的關鍵特性,比如:

  • 把應用的各個特性組織成模塊。

  • 導航到組件(Heroes 鏈接到“英雄列表”組件)。

  • 包含一個路由參數(當路由到“英雄詳情”時,把該英雄的 id 傳進去)。

  • 子路由(危機中心特性有一組自己的路由)。

  • CanActivate 守衛(wèi)(檢查路由的訪問權限)。

  • CanActivateChild 守衛(wèi)(檢查子路由的訪問權限)。

  • CanDeactivate 守衛(wèi)(詢問是否丟棄未保存的更改)。

  • Resolve 守衛(wèi)(預先獲取路由數據)。

  • 惰性加載一個模塊。

  • CanLoad 守衛(wèi)(在加載特性模塊之前進行檢查)。

就像你正逐步構建應用一樣,本指南設置了一系列里程碑。不過這里假設你已經熟悉了 Angular 的基本概念。有關 Angular 的一般性介紹,參見 快速上手。有關更深入的概述,請參閱“英雄指南”教程。

范例程序實戰(zhàn)

本教程的示例應用會幫助“英雄職業(yè)管理局”找到需要英雄來解決的危機。

本應用具有三個主要的特性區(qū):

  1. 危機中心用于維護要指派給英雄的危機列表。

  1. 英雄區(qū)用于維護管理局雇傭的英雄列表。

  1. 管理區(qū)會管理危機和英雄的列表。

該應用會渲染出一排導航按鈕和和一個英雄列表視圖。

選擇其中之一,該應用就會把你帶到此英雄的編輯頁面。

修改完名字,再點擊“后退”按鈕,應用又回到了英雄列表頁,其中顯示的英雄名已經變了。注意,對名字的修改會立即生效。

另外你也可以點擊瀏覽器本身的后退按鈕(而不是應用中的 “Back” 按鈕),這也同樣會回到英雄列表頁。 在 Angular 應用中導航也會和標準的 Web 導航一樣更新瀏覽器中的歷史。

現在,點擊危機中心鏈接,前往危機列表頁。

選擇其中之一,該應用就會把你帶到此危機的編輯頁面。 危機詳情是當前頁的子組件,就在列表的緊下方。

修改危機的名稱。 注意,危機列表中的相應名稱并沒有修改。

這和英雄詳情頁略有不同。英雄詳情會立即保存你所做的更改。 而危機詳情頁中,你的更改都是臨時的 —— 除非按“保存”按鈕保存它們,或者按“取消”按鈕放棄它們。 這兩個按鈕都會導航回危機中心,顯示危機列表。

單擊瀏覽器后退按鈕或 “Heroes” 鏈接,可以激活一個對話框。

你可以回答“確定”以放棄這些更改,或者回答“取消”來繼續(xù)編輯。

這種行為的幕后是路由器的 CanDeactivate 守衛(wèi)。 該守衛(wèi)讓你有機會進行清理工作或在離開當前視圖之前請求用戶的許可。

AdminLogin 按鈕用于演示路由器的其它能力,本章稍后的部分會講解它們。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號