详解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 相关文章推荐
不错的新闻标题颜色效果
Dec 10 Javascript
jquery三个关闭弹出层的小示例
Nov 05 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
Jul 09 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
JavaScript中的定时器之Item23的合理使用
Oct 30 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
Sep 08 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 Javascript
浅谈ElementUI中switch回调函数change的参数问题
Aug 24 Javascript
jQuery实现的简单手风琴效果示例
Aug 29 jQuery
微信小程序开发摇一摇功能
Nov 22 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代码DOS造成用光网络带宽
2011/03/01 PHP
php处理斐波那契数列非递归方法
2012/02/04 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
zend framework重定向方法小结
2016/05/28 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
舞蹈兴趣小组活动总结
2014/07/07 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
医生见习报告范文
2014/11/03 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
学生会工作感言
2015/08/07 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js