详解Angular4中路由Router类的跳转navigate
最近一直在学习angular4,它确实比以前有了很大的变化和改进,好多地方也不是那么容易就能理解,好在官方的文档和例子是中文,对英文不太好的还是有很大帮助去学习。
官方地址:https://angular.cn/docs/ts/latest/api/router/index/Router-class.html
在学习的过程中路由(router)机制是离不开的,并且好多地方都要用到。
首先路由配置Route:
import{NgModule}from'@angular/core'; import{RouterModule,Routes}from'@angular/router'; import{HomeComponent}from'./home.component'; import{LoginComponent}from'./login.component'; import{RegisterComponent}from'./register.component'; constroutes:Routes=[ {path:'',redirectTo:'/home',pathMatch:'full'}, {path:'home',component:HomeComponent}, {path:'login',component:LoginComponent}, {path:'heroes',component:RegisterComponent} ]; @NgModule({ imports:[RouterModule.forRoot(routes)], exports:[RouterModule] }) exportclassAppRoutingModule{}
其次路由跳转Router.navigate
navigate(commands:any[],extras?:NavigationExtras):Promise
interfaceNavigationExtras{ relativeTo:ActivatedRoute queryParams:Params fragment:string preserveQueryParams:boolean queryParamsHandling:QueryParamsHandling preserveFragment:boolean skipLocationChange:boolean replaceUrl:boolean }
1.以根路由跳转/login
this.router.navigate(['login']);
2.设置relativeTo相对当前路由跳转,route是ActivatedRoute的实例,使用需要导入ActivatedRoute
this.router.navigate(['login',1],{relativeTo:route});
3.路由中传参数/login?name=1
this.router.navigate(['login',1],{queryParams:{name:1}});
4.preserveQueryParams默认值为false,设为true,保留之前路由中的查询参数/login?name=1to/home?name=1
this.router.navigate(['home'],{preserveQueryParams:true});
5.路由中锚点跳转/home#top
this.router.navigate(['home'],{fragment:'top'});
6.preserveFragment默认为false,设为true,保留之前路由中的锚点/home#topto/role#top
this.router.navigate(['/role'],{preserveFragment:true});
7.skipLocationChange默认为false,设为true,路由跳转时浏览器中的url会保持不变,但是传入的参数依然有效
this.router.navigate(['/home'],{skipLocationChange:true});
8.replaceUrl默认为true,设为false,路由不会进行跳转
this.router.navigate(['/home'],{replaceUrl:true});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。