详解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 相关文章推荐
JS日历 推荐
Dec 03 Javascript
Javascript将string类型转换int类型
Dec 09 Javascript
基于datagrid框架的查询
Apr 08 Javascript
Array栈方法和队列方法的特点说明
Jan 24 Javascript
js返回上一页并刷新的多种实现方法
Feb 26 Javascript
thinkphp中常用的系统常量和系统变量
Mar 05 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
Sep 03 Javascript
剖析Angular Component的源码示例
Mar 23 Javascript
vue的传参方式汇总和router使用技巧
May 22 Javascript
小程序中this.setData的使用和注意事项
Aug 28 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 Javascript
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
基于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中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
python的re模块使用方法详解
2019/07/26 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
如何卸载python插件
2020/07/08 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
大学毕业自我鉴定范文
2014/02/03 职场文书
初中学生期末评语
2014/04/24 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
标枪加油稿
2015/07/22 职场文书