Angular 多级路由实现登录页面跳转(小白教程)
本文受众是Angular初学者,没有多级路由使用经验,不知道登录页面与主页跳转的实现逻辑,相反,看到这里你就可以结束了,不要浪费时间。下面来看看小白对于登录页面的理解:
上图中左边是导航菜单栏,右边的空白区域是
多级路由实现图
图有点大,看不清楚的放大点看吧。看了这个图相信一部分人已经懂了实现原理了。如果还是不懂,来看下面的文字讲解。
实现原理讲解
本文案例以Angular+ng-zorro-antd来讲解,如果使用了别的UI套件也没关系,原理都是一样的
- 使用命令ngnewlogindemo创建项目
- 在命令行界面使用cd切换当前路径为上面创建的项目的根目录下
- 使用命令ngaddng-zorro-antd向项目中添加UI套件
- 此时运行起来后大致就是本文的第一个图片的显示效果:左边是导航菜单,右边是变换显示业务组件的区域
- 那么小白走到这里就被误导了,产生了本文初的疑惑,下面开始来解扣了。
项目创建好了,下面介绍改造项目的步骤:
注释掉文件app.component.html中的全部代码,并且添加一行:
创建布局组件layout,将文件app.component.html中被注释的代码拷贝来,那么本组件的效果就是本文的第一个图片的布局效果了。拷贝来的代码中自带了路由插槽
constroutes: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)} ] } ];
本组件的超链接中路径写法:
那么在文件app.component.ts组件关联的路由文件app-routing.module.ts中的路由代码如下:
constroutes: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)} ];
这里的路由设置表示,当访问项目的空路径localhost:4200时会自动导航到组件layout,又由于该组件有路由守卫,如果没有登录那么会被转发到登录组件login,这个路由守卫是写在组件layout中的路由文件中的。当正常登录状态下打开组件layout的页面时就达到了本文的第一个图片的效果,右侧显示业务逻辑组件的页面。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。