详解Angular4中路由Router类的跳转navigate


Posted in Javascript onJune 09, 2017

最近一直在学习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 });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript操作文本框readOnly
May 15 Javascript
javascript 短路法代码精简
Aug 20 Javascript
怎么清空javascript数组
May 11 Javascript
jQuery filter函数使用方法
May 19 Javascript
js命名空间写法示例
Dec 18 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
BootstrapValidator超详细教程(推荐)
Dec 07 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
仿淘宝JSsearch搜索下拉深度用法
Jan 15 Javascript
vue登录页面cookie的使用及页面跳转代码
Jul 10 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
基于vue2.0实现的级联选择器
Jun 09 #Javascript
JavaScript设计模式之代理模式详解
Jun 09 #Javascript
vue.js+Echarts开发图表放大缩小功能实例
Jun 09 #Javascript
vue2 中如何实现动态表单增删改查实例
Jun 09 #Javascript
JS创建Tag标签的方法详解
Jun 09 #Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
Jun 09 #Javascript
JS实现的随机排序功能算法示例
Jun 09 #Javascript
You might like
php时间不正确的解决方法
2008/04/09 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
python版微信跳一跳游戏辅助
2018/01/11 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
花卉与景观设计系大学生求职信
2013/10/01 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
心理健康日活动总结
2014/05/08 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
实习生个人总结范文
2015/02/28 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
5道关于python基础 while循环练习题
2021/11/27 Python
win10更新失败无限重启解决方法
2022/04/19 数码科技
KVM基础命令详解
2022/04/30 Servers
关于mysql中string和number的转换问题
2022/06/14 MySQL