路由

什么是路由?

路由就是将应用划分成多个分区。

为什么需要路由?

用户需要访问不同的页面,指定用户的位置。

如何设定路由?

  1. 初级阶段:使用锚标记。
<a href="#tag" >从这里</a>
<div style="height:1200px"></div>
<a name="tag">跳到这里</a>
  1. HTML5客户端路由
    浏览器可以在不需要新的请求的情况下,允许在代码中创建新的浏览器记录并显示适当的URL。这是利用history.pushState()实现的。

Angular路由的组成部件

  • Routes:描述了应用程序支持的路由配置。
  • RouterOutlet:这是一个“占位符”组件,用于告诉Angular要把每个路由的内容放在哪里。
  • RouterLink指令:用于创建各种路由链接。

使用路由

  1. 路由配置
const routes: Routes = [
  {path: '', redirectTo: 'home', pathMatch: 'full'},
  {path: 'home', component: HomeComponent},
  {path: 'about', component: AboutComponent},
  {path: 'contact', component: ContactComponent},
  {path: 'contactus', redirectTo: 'contact'}
];

redirectTo作用是重定向。

  1. 安装路由配置
 imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    /*2.安装路由配置*/
    RouterModule.forRoot(routes)
  ],
  1. 使用<router-outlet>调用RouterOutlet指令
<div>
  <nav>
    <a>Navigation:</a>
    <ul>
      <li><a [routerLink]="['home']">Home</a></li>
      <li><a [routerLink]="['about']">About</a></li>
      <li><a [routerLink]="['contact']">Contact</a></li>
    </ul>
  </nav>
  <router-outlet></router-outlet>
</div>

<router-outlet></router-outlet>是组件被渲染的地方。

  1. 使用[routerLink]调用routerLink指令
 <ul>
      <li><a [routerLink]="['home']">Home</a></li>
      <li><a [routerLink]="['about']">About</a></li>
      <li><a [routerLink]="['contact']">Contact</a></li>
    </ul>

routerLink指令的作用是在不重载页面的情况下链接路由。使用纯HTML,就像如下所示:

<a href="/#/home">Home</a>

点击这个链接会触发页面重载,因为我们是单页面应用,这种情况要杜绝。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:路由基础 什么是路由: 在web开发中,路由的概念由来已久,简而言之,就是利用URL的唯一性来指定特定的事物,...
    真的稻城阅读 6,043评论 2 7
  • 路由:根据不同地址加载不同组件,实现单页面应用 # 1 路由基础知识 ================= 在ang...
    __凌阅读 713评论 0 0
  • 路由是 Angular 应用程序的核心,它加载与所请求路由相关联的组件,以及获取特定路由的相关数据。这允许我们通过...
    semlinker阅读 12,226评论 4 16
  • 路由要解决的核心问题是通过建立URL和页面的对应关系,使得不同的页面可以用不同的URL表示。在angular中,页...
    oWSQo阅读 1,313评论 0 1
  • 版本:4.0.0+2 有一些英雄指南应用的新需求: 添加一个仪表盘 视图。 添加在英雄 视图和 仪表盘 视图之间导...
    soojade阅读 1,364评论 0 0