angular5实现简单的SPA页面
1.首先你的确保你的MAC上已经安装angular5
2.在终端通过命令 ng g angular --routing创建一个新的项目工程
3.打开这个工程的src/app,你会惊奇的发现比正常创建的工程多了个app-routing.model.ts;不要惊讶,每个带有路由的angular应用都有一个Router服务的单例对象.当浏览器的url变化时,路由会查找对应的Route(路由),并决定显示那个组件.所以,最终我们要实现的SPA页面是对过对app-routing.model.ts中routes数组的操作
4.angular5的路由导航有下面的5个关键核心
1.routes:所有的路由信息都在这里进行配置(在routing模块中) 2.router-outlet:插座标识,所有需要切换的组件,都会被显示在<router-outlet></router-outlet>下面 3.router:导航对象,通过调用该对象的方法,实现路由切换 4.routerLink :结合a标签使用,进行路由切换 5.ActivatedRoute,利用这个对象可以获取信息和穿过去的参数开始我们的表演:
在WebStorm中在命令行中依次输入ng g compontent home/myHeader/myFooter/product/code404 分别创建5个组件
5.打开app.conponent.html 创建以下3个标签
<app-my-header></app-my-header> <!--路由切换位置 将来通过路由显示的组件都会在该标签下方 --> <router-outlet></router-outlet> <app-my-footer></app-my-footer>在这里我们要创建一个头部和尾部不发生变化的SPA页面,<router-outlet></router-outlet>是关键
6.打开my-header.component.html 在这里将通过2中方式来进行路由跳转,一种是通过routerLink,第二种是通过router:导航对象,通过调用该对象的方法,实现路由的切换;其中其他的几个组件html样式自己可以进行简单的设置
<div class="wrapper"> <h1>我是头部</h1> <!--路由跳转--> <a [routerLink]="['/']">展示首页</a> <a [routerLink]="['/product']">展示商品</a> <!----> <input type="button" value="显示商品" (click)="doClick()"> </div>7.打开app-routing.model.ts,我们进行第一种方法的实现,在这里顺便讲下网页的重定向
const routes: Routes = [ //重定向路由 { path: '', redirectTo: '/home', pathMatch: 'full' }, //设置home组件的路由 { path: 'home', component: HomeComponent }, //设置product组件的路由 { path: 'product', component: ProductComponent }, { //通配路由是"**' path: '**', component: Code404Component } ];8.第二种方法的实现,打开my-header.component.ts
export class MyHeaderComponent implements OnInit { //依赖注入 constructor(private router: Router) { } ngOnInit() { } //点击跳转 doClick() { //使用router进行路径的跳转 this.router.navigate(['/product']); } }9.在命令行输入 npm start