亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Angular 多級(jí)路由實(shí)現(xiàn)登錄頁(yè)面跳轉(zhuǎn)(小白教程)

 更新時(shí)間:2019年11月19日 14:40:05   作者:葬天塵  
這篇文章主要介紹了Angular 多級(jí)路由實(shí)現(xiàn)登錄頁(yè)面跳轉(zhuǎn)(小白教程),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文受眾是 Angular 初學(xué)者,沒(méi)有多級(jí)路由使用經(jīng)驗(yàn),不知道登錄頁(yè)面與主頁(yè)跳轉(zhuǎn)的實(shí)現(xiàn)邏輯,相反,看到這里你就可以結(jié)束了,不要浪費(fèi)時(shí)間。下面來(lái)看看小白對(duì)于登錄頁(yè)面的理解:

上圖中左邊是導(dǎo)航菜單欄,右邊的空白區(qū)域是 <router-outlet> 所在區(qū)域,即所有實(shí)現(xiàn)業(yè)務(wù)邏輯的組件都在這里顯示 - 點(diǎn)擊左邊導(dǎo)航欄的項(xiàng)目右側(cè)B區(qū)域就替換為對(duì)應(yīng)的頁(yè)面,那么問(wèn)題來(lái)了,登錄頁(yè)面要怎么做?

多級(jí)路由實(shí)現(xiàn)圖

圖有點(diǎn)大,看不清楚的放大點(diǎn)看吧??戳诉@個(gè)圖相信一部分人已經(jīng)懂了實(shí)現(xiàn)原理了。如果還是不懂,來(lái)看下面的文字講解。

實(shí)現(xiàn)原理講解

本文案例以 Angular + ng-zorro-antd 來(lái)講解,如果使用了別的UI套件也沒(méi)關(guān)系,原理都是一樣的

  • 使用命令 ng new logindemo 創(chuàng)建項(xiàng)目
  • 在命令行界面使用 cd 切換當(dāng)前路徑為上面創(chuàng)建的項(xiàng)目的根目錄下
  • 使用命令 ng add ng-zorro-antd 向項(xiàng)目中添加UI套件
  • 此時(shí)運(yùn)行起來(lái)后大致就是本文的第一個(gè)圖片的顯示效果:左邊是導(dǎo)航菜單,右邊是變換顯示業(yè)務(wù)組件的區(qū)域
  • 那么小白走到這里就被誤導(dǎo)了,產(chǎn)生了本文初的疑惑,下面開(kāi)始來(lái)解扣了。

項(xiàng)目創(chuàng)建好了,下面介紹改造項(xiàng)目的步驟:

注釋掉文件 app.component.html 中的全部代碼,并且添加一行:<router-outlet></router-outlet>

創(chuàng)建布局組件 layout ,將文件 app.component.html 中被注釋的代碼拷貝來(lái),那么本組件的效果就是本文的第一個(gè)圖片的布局效果了??截悂?lái)的代碼中自帶了路由插槽 <router-outlet></router-outlet> 那么到本頁(yè)面中的路由插槽實(shí)際就是二級(jí)路由了。二級(jí)路由的代碼如下:

const routes: Routes = [
 { 
  path:'',component:LayoutComponent,canActivate:[LayoutGuard],
  children:[
   { path: 'dbManager',loadChildren: () => 
    import('../dbmanager/dbmanager.module').then(m => m.DbmanagerModule) },

   { path: 'generateTree',loadChildren: () => 
    import('../gentree/gentree.module').then(m => m.GentreeModule) }
  ] 
 }
];

本組件的超鏈接中路徑寫(xiě)法:<a routerLink="dbManager" >數(shù)據(jù)庫(kù)管理器</a>,之前創(chuàng)建項(xiàng)目時(shí)的默認(rèn)寫(xiě)法是:<a routerLink="/dbManager" >數(shù)據(jù)庫(kù)管理器</a>,即只是去掉了 dbManager 前面的斜線。

那么在文件 app.component.ts 組件關(guān)聯(lián)的路由文件 app-routing.module.ts 中的路由代碼如下:

const routes: Routes = [
 { path: '', pathMatch: 'full', redirectTo: '/layout' },
 { path: 'login', loadChildren: () => 
  import('./pages/login/login.module').then(m => m.LoginModule) },
 { path: 'layout',loadChildren: () => 
  import('./pages/layout/layout.module').then(m => m.LayoutModule)}
];

這里的路由設(shè)置表示,當(dāng)訪問(wèn)項(xiàng)目的空路徑 localhost:4200 時(shí)會(huì)自動(dòng)導(dǎo)航到組件 layout ,又由于該組件有路由守衛(wèi),如果沒(méi)有登錄那么會(huì)被轉(zhuǎn)發(fā)到登錄組件 login ,這個(gè)路由守衛(wèi)是寫(xiě)在組件 layout 中的路由文件中的。當(dāng)正常登錄狀態(tài)下打開(kāi)組件 layout 的頁(yè)面時(shí)就達(dá)到了本文的第一個(gè)圖片的效果,右側(cè)顯示業(yè)務(wù)邏輯組件的頁(yè)面。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論