Angular2 (RC5) 路由与导航详解


Posted in Javascript onSeptember 21, 2016

之前总结过RC4的路由配置,Angular2升级RC5之后增加了NgModule和RouterModule等等很多组件,所以现在的路由配置方式也变化比较大。

1.<base href>

大多数带路由的应用都要在 index.html 的 <head>标签下顶部添加一个<base>元素。

2.配置路由器

app.routing.ts

import { Routes, RouterModule } from '@angular/router';
const appRoutes: Routes = [
  {
    path: '',
    redirectTo: '/dashboard',
    pathMatch: 'full'
  },
  {
    path: 'heroes',
    component: HeroesComponent
  },
  {
    path: 'dashboard',
    component: DashboardComponent
  },
  {
    path: 'detail/:id',
    component: HeroDetailComponent
  }
]
export const routing = RouterModule.forRoot(appRoutes);

创建一个Routes类型数组,它会把每一个URL匹配到path,匹配成功则映射到该path对应的组件component上。
然后把这个路由数组appRoutes通过RouterModule.forRoot(appRoutes)导出。

3.引用路由

app.module.ts

import { routing } from './app.routing';

@NgModule({
  imports: [
    BrowserModule,
    routing
  ],
  declarations: [
    AppComponent
    // some component
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule {}

就这样,我们在@NgModule的imports中引用了我们配置好的路由器。

4.在模板中使用路由

完成上面的2、3步骤,我们就能在模板中使用路由了

app.component.ts

template: `
   <nav>
     <a routerLink='/dashboard' routerLinkActive='active'>Dashboard</a>
     <a routerLink='/heroes' routerLinkActive='active'>Heroes</a>
   </nav>
   <router-outlet></router-outlet>
`

我们在<a>标签中添加了routerLink指令,可以一次性绑定到我们路由中的path值。
如果这个URL的path和routerLink匹配,就把映射到的组件在<router-outlet>中显示。

我们还可以往<a>中添加一个routerLinkActive指令,用于在相关的routerLink被激活时所在元素添加或移除CSS类。该指令可以直接添加到该元素上,也可以直接添加到其父元素上。

5.总结

在此,我们就完成了Angular2 (RC5)的路由配置。RC5和RC4的路由配置不同之处就在于, RC5的路由不需要在设置路由模板的TS文件导入路由库

import { ROUTER_DIRECTIVES } from '@angular/router';

直接在NgModule中引入配置好的路由就可以

@NgModule({
  imports: [
    routing
  ]
})

导入的路由组件由

import { provideRouter, RouterConfig } from '@angular/router';

变成了

import { Routes, RouterModule } from '@angular/router';

路由数组的导出方式由

export const appRouterProviders = [provideRouter(routes)];

变成了

export const routing = RouterModule.forRoot(appRoutes);

其他部分大体上都是相同的,比如路由的数组的配置写法、routerLink指令和<router-outlet>等等。详情见我写过的RC4的路由配置方式。

以上就是对Angular2 (RC5) 路由与导航的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
使用js判断控件是否获得焦点
Jan 03 Javascript
使用JavaScript获取电池状态的方法
May 03 Javascript
js实现select跳转功能代码
Oct 22 Javascript
javascript制作的滑动图片菜单
May 15 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 Javascript
详解webpack 热更新优化
Sep 13 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
微信小程序实现音频文件播放进度的实例代码
Mar 02 Javascript
基于js实现逐步显示文字输出代码实例
Apr 02 Javascript
Angular2 (RC4) 路由与导航详解
Sep 21 #Javascript
AngularJS 单元测试(二)详解
Sep 21 #Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
Sep 21 #Javascript
AngularJS 单元测试(一)详解
Sep 21 #Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 #Javascript
AngularJS  ng-table插件设置排序
Sep 21 #Javascript
BooStrap对导航条的改造实践小结
Sep 21 #Javascript
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
ThinkPHP安装和设置
2015/07/27 PHP
比较完整的微信开发php代码
2016/08/02 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
javascript获取元素偏移量的方法有哪些
2014/06/24 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
python发送伪造的arp请求
2014/01/09 Python
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
python中的print()输出
2019/04/12 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
大学考试作弊检讨书
2014/01/30 职场文书
发展部经理职责规定
2014/02/22 职场文书
品德评语大全
2014/05/05 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
整改通知书格式
2015/04/22 职场文书
小学入学感言
2015/08/01 职场文书
深入理解go slice结构
2021/09/15 Golang