Angular 多級(jí)路由實(shí)現(xiàn)登錄頁(yè)面跳轉(zhuǎn)(小白教程)
本文受眾是 Angular 初學(xué)者,沒有多級(jí)路由使用經(jīng)驗(yàn),不知道登錄頁(yè)面與主頁(yè)跳轉(zhuǎn)的實(shí)現(xiàn)邏輯,相反,看到這里你就可以結(jié)束了,不要浪費(fèi)時(shí)間。下面來看看小白對(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è)面,那么問題來了,登錄頁(yè)面要怎么做?
多級(jí)路由實(shí)現(xiàn)圖
圖有點(diǎn)大,看不清楚的放大點(diǎn)看吧。看了這個(gè)圖相信一部分人已經(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套件
- 此時(shí)運(yùn)行起來后大致就是本文的第一個(gè)圖片的顯示效果:左邊是導(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 中被注釋的代碼拷貝來,那么本組件的效果就是本文的第一個(gè)圖片的布局效果了??截悂淼拇a中自帶了路由插槽 <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) } ] } ];
本組件的超鏈接中路徑寫法:<a routerLink="dbManager" >數(shù)據(jù)庫(kù)管理器</a>,之前創(chuàng)建項(xiàng)目時(shí)的默認(rèn)寫法是:<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)訪問項(xiàng)目的空路徑 localhost:4200 時(shí)會(huì)自動(dòng)導(dǎo)航到組件 layout ,又由于該組件有路由守衛(wèi),如果沒有登錄那么會(huì)被轉(zhuǎn)發(fā)到登錄組件 login ,這個(gè)路由守衛(wèi)是寫在組件 layout 中的路由文件中的。當(dāng)正常登錄狀態(tài)下打開組件 layout 的頁(yè)面時(shí)就達(dá)到了本文的第一個(gè)圖片的效果,右側(cè)顯示業(yè)務(wù)邏輯組件的頁(yè)面。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Angular 利用路由跳轉(zhuǎn)到指定頁(yè)面的指定位置方法
- Angular4.x通過路由守衛(wèi)進(jìn)行路由重定向?qū)崿F(xiàn)根據(jù)條件跳轉(zhuǎn)到相應(yīng)的頁(yè)面(推薦)
- AngularJS實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)后自動(dòng)彈出對(duì)話框?qū)嵗a
- AngularJS頁(yè)面帶參跳轉(zhuǎn)及參數(shù)解析操作示例
- AngularJS實(shí)現(xiàn)單一頁(yè)面內(nèi)設(shè)置跳轉(zhuǎn)路由的方法
- angular同一頁(yè)面跳轉(zhuǎn)重新執(zhí)行的實(shí)現(xiàn)方法
相關(guān)文章
用Angular實(shí)時(shí)獲取本地Localstorage數(shù)據(jù),實(shí)現(xiàn)一個(gè)模擬后臺(tái)數(shù)據(jù)登入的效果
這篇文章主要介紹了用ANGULAR實(shí)時(shí)獲取本地LOCALSTORAGE數(shù)據(jù),實(shí)現(xiàn)一個(gè)模擬后臺(tái)數(shù)據(jù)登入的效果的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11Angular入口組件(entry component)與聲明式組件的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于Angular入口組件(entry component)與聲明式組件的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04淺談angularJs函數(shù)的使用方法(大小寫轉(zhuǎn)換,拷貝,擴(kuò)充對(duì)象)
今天小編就為大家分享一篇淺談angularJs函數(shù)的使用方法(大小寫轉(zhuǎn)換,拷貝,擴(kuò)充對(duì)象),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10AngularJS基礎(chǔ) ng-dblclick 指令用法
本文主要介紹AngularJS ng-dblclick 指令,這里對(duì)ng-dblclick基礎(chǔ)資料整理并詳細(xì)介紹,簡(jiǎn)單的代碼實(shí)例和實(shí)現(xiàn)效果,希望能幫助學(xué)習(xí)AngularJS的朋友2016-08-08AngularJs Using $location詳解及示例代碼
本文主要介紹AngularJs Using $location的知識(shí)資料,這里整理了相關(guān)的資料,及簡(jiǎn)單示例代碼,有興趣的小伙伴可以參考下2016-09-09angular5 子組件監(jiān)聽父組件傳入值的變化方法
今天小編就為大家分享一篇angular5 子組件監(jiān)聽父組件傳入值的變化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09Angular 2應(yīng)用的8個(gè)主要構(gòu)造塊有哪些
這篇文章主要為大家詳細(xì)介紹了Angular 2應(yīng)用的8個(gè)主要構(gòu)造塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Angular2實(shí)現(xiàn)組件交互的方法分析
這篇文章主要介紹了Angular2實(shí)現(xiàn)組件交互的方法,結(jié)合實(shí)例形式總結(jié)分析了Angular2中組件交互的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-12-12cnpm加速Angular項(xiàng)目創(chuàng)建的方法
這篇文章主要介紹了cnpm加速Angular項(xiàng)目創(chuàng)建的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09