最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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

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

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

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) }
  ] 
 }
];

本組件的超鏈接中路徑寫法:<a routerLink="dbManager" >數(shù)據(jù)庫管理器</a>,之前創(chuàng)建項(xiàng)目時的默認(rèn)寫法是:<a routerLink="/dbManager" >數(shù)據(jù)庫管理器</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)訪問項(xiàng)目的空路徑 localhost:4200 時會自動導(dǎo)航到組件 layout ,又由于該組件有路由守衛(wèi),如果沒有登錄那么會被轉(zhuǎn)發(fā)到登錄組件 login ,這個路由守衛(wèi)是寫在組件 layout 中的路由文件中的。當(dāng)正常登錄狀態(tài)下打開組件 layout 的頁面時就達(dá)到了本文的第一個圖片的效果,右側(cè)顯示業(yè)務(wù)邏輯組件的頁面。

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

相關(guān)文章

最新評論

金乡县| 方正县| 盐源县| 鄂州市| 崇文区| 永安市| 义马市| 蕲春县| 平乡县| 武山县| 客服| 双江| 勃利县| 土默特右旗| 托克托县| 乌什县| 临武县| 泰州市| 青铜峡市| 拜城县| 兴城市| 安仁县| 平塘县| 酉阳| 京山县| 荣昌县| 文山县| 贡觉县| 吴旗县| 临安市| 保康县| 休宁县| 揭阳市| 蓝田县| 阜城县| 灌南县| 徐汇区| 信丰县| 龙口市| 安溪县| 龙海市|