详解Angular4中路由Router类的跳转navigate
程序员文章站
2022-04-10 10:50:25
最近一直在学习angular4,它确实比以前有了很大的变化和改进,好多地方也不是那么容易就能理解,好在官方的文档和例子是中文,对英文不太好的还是有很大帮助去学习。
官方地...
最近一直在学习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'; const routes: 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 ] }) export class approutingmodule {}
其次路由跳转router.navigate
navigate(commands: any[], extras?: navigationextras) : promise<boolean>
interface navigationextras { 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=1 to /home?name=1
this.router.navigate(['home'], { preservequeryparams: true });
5.路由中锚点跳转 /home#top
this.router.navigate(['home'],{ fragment: 'top' });
6.preservefragment默认为false,设为true,保留之前路由中的锚点/home#top to /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 });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: 原生JS发送异步数据请求
推荐阅读
-
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
-
angular2中router路由跳转navigate的使用与刷新页面问题详解
-
VueJs路由跳转——vue-router的使用详解
-
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
-
详解Angular4中路由Router类的跳转navigate
-
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
-
angular2中router路由跳转navigate的使用与刷新页面问题详解
-
Angular4中路由Router类的实例详解
-
VueJs路由跳转——vue-router的使用详解
-
Angular4中路由Router类的跳转navigate