详解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 相关文章推荐
jQuery 剧场版 你必须知道的javascript
May 27 Javascript
用JSON做数据传输格式中的一些问题总结
Dec 21 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
Feb 03 Javascript
JS获取url链接字符串 location.href
Dec 23 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
JS 60秒后重新发送验证码的实例讲解
Jul 26 Javascript
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
Vue动态获取width的方法
Aug 22 Javascript
vue图片上传本地预览组件使用详解
Feb 20 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
angular中的post请求处理示例详解
Jun 30 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多任务程序实例解析
2014/07/19 PHP
php数组使用规则分析
2015/02/27 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
Python子类继承父类构造函数详解
2019/02/19 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
自荐信如何制作?
2014/02/21 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
保证书范文大全
2014/04/28 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
会计求职自荐信范文
2015/03/04 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL