路由守衛(wèi)

Angular2提供了2種組件,GuardResolveGuard用來保護一個路徑??梢杂脕砼袛嘤脩糁挥性跐M足一定條件情況下才能打開這個路徑對應(yīng)的頁面。Resolve用來在進入某個路徑之前先獲取數(shù)據(jù)。

Guard

Guard其實是一系列接口,只要你實現(xiàn)了他的方法,配置了這些Guard,框架就會根據(jù)這個方法返回的true和false來判斷是否激活這個路由。它包括幾種類型:

  • CanActivate:這種類型的Guard用來控制是否允許進入當前的路徑。
  • CanActivateChild:這種類型的Guard用來控制是否允許進入當前的路徑的所有子路徑。
  • CanDeactivate:用來控制是否能離開當前路徑進入其他路徑。
  • CanLoad:用于控制一個異步加載的子模塊是否允許被加載。

Resolve

這跟Angular1中ui-router庫的resolve類似,就是用來在打開一個頁面之前先獲取數(shù)據(jù),而不是進入頁面以后再加載。這個接口中的方法,可以返回任意的對象,也可以返回一個Promise,或者Observable。

如果在一個路徑上同時設(shè)置了CanActivateResolve,首先CanActivate接口的方法會被執(zhí)行,當這個路由可以被激活時,Resolve接口的方法才會被執(zhí)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 引言 在企業(yè)應(yīng)用中權(quán)限、復雜頁多路由數(shù)據(jù)處理、進入與離開路由數(shù)據(jù)處理這些是非常常見的需求。 當希望用戶離開一個正常...
    cipchk閱讀 5,679評論 6 23
  • # 1 :重定向路由 {path: '',redirectTo:'home', parthMatch:'full'...
    __凌閱讀 701評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,967評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,420評論 25 708
  • 進入或者離開路由時需要滿足的條件或者進入路由時需要執(zhí)行什么函數(shù) 一 進入時滿足的條件現(xiàn)需要寫一個類來完成方法的封裝...
    馬丁路德東閱讀 265評論 0 0