📅  最后修改于: 2023-12-03 14:57:23.807000             🧑  作者: Mango
角度路由器是一个使用 JavaScript 实现的客户端路由器。它能够帮助程序员管理不同页面之间的跳转与状态。
可通过 npm 进行安装:
npm install angular-router
在你的项目中引入 Angular 路由器:
import { RouterModule } from 'angular-router';
在入口组件中,定义一个路由数组,其中定义每个路由的路径,组件和其他属性:
import { MyComponent } from './my.component';
import { AboutComponent } from './about.component';
const routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: 'my', component: MyComponent }
];
在模块中引入 RouterModule,并在 imports 数组中注册路由。
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
在应用程序中,使用 Angular 路由指令来配置路由链接,并使用路由器来导航到新组件。
<nav>
<a routerLink="">Home</a>
<a routerLink="my">My</a>
<a routerLink="about">About</a>
</nav>
<router-outlet></router-outlet>
路由守卫可以用于控制是否允许进入或离开一个路由。比如,我们可以在离开某个路由时进行未保存的变更提示。
import { CanDeactivate } from '@angular/router';
export class UnsavedChangesGuard implements CanDeactivate<MyComponent> {
canDeactivate(component: MyComponent) {
if (component.isDirty()) {
return confirm("Are you sure you want to discard your changes?");
} else {
return true;
}
}
}
路由器也会触发其他事件,比如路由进入、路由激活等。我们可以在路由器中通过以下方式接收这些事件:
import { Router, NavigationStart } from '@angular/router';
constructor(private router: Router) {
router.events.subscribe((event) => {
if (event instanceof NavigationStart) {
console.log("NavigationStart: ", event.url);
}
});
}
角度路由器是一个强大的客户端路由器,能够帮助我们管理页面跳转与状态。通过本文的介绍,你应该能够快速上手使用 Angular 路由器实现你的应用程序了。