详解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图片翻书效果代码分享
Aug 20 Javascript
基于jQuery实现点击弹出层实例代码
Jan 01 Javascript
jQuery each函数源码分析
May 25 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
Aug 06 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
Apr 01 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
微信小程序实现即时通信聊天功能的实例代码
Aug 17 Javascript
生产制造追溯系统之再说条码打印
Jun 03 Javascript
微信小程序如何播放腾讯视频的实现
Sep 20 Javascript
详解JavaScript的this指向和绑定
Sep 08 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初学者最感迷茫的问题小结
2010/03/27 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
python正则-re的用法详解
2019/07/28 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
Python 代码调试技巧示例代码
2020/08/11 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
冬季施工防火方案
2014/05/17 职场文书
社团活动总结书
2014/06/27 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
接收函
2019/04/22 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android