• 在Angular 12中使用Router浏览视图


    Kendo UI for Angular最新版下载

    Kendo UI for Angular是专业级的Angular UI组件库,不仅是将其他供应商提供的现有组件封装起来,telerik致力于提供纯粹高性能的Angular UI组件,而无需任何jQuery依赖关系。无论您是使用TypeScript还是JavaScript开发Angular应用程序,Kendo UI for Angular都能为Angular项目提供专业的、企业级UI组件。

    构建单页应用程序(SPA)很有趣,尤其是当您开始使用Angular时,在这篇文章中,您将学习如何使用Angular轻松实现这一目标。

    先决条件

    为了能够继续执行本文的演示,您应该具备以下条件:

    • VS Code之类的集成开发环境(IDE)
    • 您的计算机上安装Node version 11.0
    • Node Package Manager 6.7版(通常随Node安装一起提供)
    • Angular CLI v8.0及以上版本
    • Angular的最新版本(版本12):

    ng version

    确认您正在使用v12,如果没有,请更新至v12版本。

    如何在视图之间导航?

    构建SPA(单页应用程序)的神奇之处之一就是能够拥有多个视图。 使用Angular使此操作非常容易,因为您可以通过导航工具在一个组件中动态显示多个视图。 您可以从主页到“关于”页面,再到“与我们联系”页面,全部集中在一个组件中。

    为什么路由很重要?

    想象一个场景,您从SPA中的一个视图转到另一个视图,但URL完全没有改变。 就像您单击“关于我们”按钮一样,页面显示在DOM中,但URL仍然显示“ newapp.com”而不是“ newapp.com/about”。

    这存在一些问题,第一是如何将特定的视图添加为书签,看到书签保存URL而不是应用程序视图?其他问题是由于URL基本上是静态的,刷新页面的概念将如何工作以及如何与其他人共享链接。

    路由确保URL与显示的视图匹配,以便您可以轻松地分离视图,保持状态甚至具有直观的Web体验。

    什么是Angular Router?

    Angular Router是由Angular团队构建和维护的JavaScript路由器,它具有广泛的路由包,可让您准确定义要分配给视图的URL字符串。 您可以有多个路由器出口,路径匹配甚至路由防护。 这是Angular重要组成部分,可确保可以使用该框架轻松构建SPA。

    我们要构建什么?

    我们将构建一个小型音乐电视应用程序,当您单击连接它们的按钮时,它将显示两个视图,如下所示:

    CodeRush v20.2.9正式发布
    配置

    首先,打开VS Code,然后在终端中使用以下命令创建一个新的angular应用程序:

    ng new newap --routing

    添加路由标记会自动创建一个名为newapp的新Angular应用,并预先配置路由。

    现在更改目录,使用以下命令导航到应用程序根文件夹:

    cd newapp

    两个组件

    接下来要做的是生成新的组件,该组件将容纳计划在其间交替的两个视图。

    ng generate component artists -it -is
    ng generate component records -it -is

    这两个命令会在源代码的应用程序文件夹中使用内联样式和模板创建一个名为Artists and Records的新文件夹,默认情况下类似于Vue.js。 接下来要做的是配置路由以适配我们的需求。

    配置路由

    要配置路由器,请将下面的代码块复制到您的app-routing.module.ts文件中:

    import { NgModule } from '@angular/core';
    import { Routes, RouterModule } from '@angular/router';
    import { ArtistsComponent } from './artists/artists.component';
    import { RecordsComponent } from './records/records.component';
    const routes: Routes = [
    {path:'artists', component:ArtistsComponent},
    {path:'records', component:RecordsComponent}
    ];
    @NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
    })
    export class AppRoutingModule { }
    export const ArrayOfComponents = [ArtistsComponent, RecordsComponent]

    首先,导入了两个组件; 然后配置路由。请注意,如何将所需的URL字符串定义为Artists和Records,并将它们与两个组件进行匹配?为了不继续在其他可能需要的地方导入组件,我们创建了一个组件数组。

    要注册此新开发项目,请打开您的应用模块文件,然后在下面的代码块中进行复制:

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { AppRoutingModule, ArrayOfComponents } from './app-routing.module';
    import { AppComponent } from './app.component';
    @NgModule({
    declarations: [
    AppComponent,
    ArrayOfComponents
    ],
    imports: [
    BrowserModule,
    AppRoutingModule
    ],
    providers: [],
    bootstrap: [AppComponent]
    })
    export class AppModule { }

    在这里我们注册了新的组件数组,如您所见,不再需要将两个组件导入数组中,这是保持代码正确维护的好方法。

    路由器链接

    接下来要做的是构建应用模板本身,路由器链接是Angular路由器的一部分,用于指示链接 - 当您要指向视图时,它在模板内至关重要。 在应用程序组件HTML文件中,将内容替换为以下代码块:

    <div class="car">
    <div style="text-align:center;">
    <h1>
    This is your Music TV
    </h1>
    </div>
    <nav style="text-align:center;">
    <button routerLink='/artists'>Artists</button>
    <button routerLink='/records'>Records</button>
    </nav>
    <router-outlet></router-outlet>
    </div>

    当单击 “Artists” 按钮时,将视图更改为Artists组件,并且在单击 “Records”按钮时,也进行了同样的操作。

    收尾

    要向应用添加某种样式以使其突出,请打开应用组件CSS文件并在其中复制以下规则:

    .car {
    top: 50%;
    text-align: center;
    border-radius: 25px;
    border: 2px solid #73AD21;
    padding: 20px;
     600px;
    height: 250px;
    margin-left: 25%;
    margin-bottom: 15px;
    }
    
    button {
    top: 50%;
    text-align: center;
    border-radius: 15px;
    border: 2px solid #73AD21;
     fit-content;
    margin: 20px;
    padding: 20px;
    }

    保存所有这些文件,并使用以下命令在开发服务器上运行该应用程序:

    ng serve

    您将看到它的运行与上面显示的完全相同。


    了解最新Kendo UI最新资讯,请关注Telerik中文网!

  • 相关阅读:
    DevExpress 最最最基础踩坑(如何设置控件属性)
    Oracle如何创建数据库(使用图形化界面,顺便提一下UTF-8和ZB16GB字符集的问题)
    ElementUI el-dialog中嵌套子页面
    Oracle详细教程(触发器,事务,存储过程,锁,游标)
    和人事交谈下来的几点感悟
    Oracle Groupby分组缺少表达式解决方法
    leetcode973. 最接近原点的 K 个点(谈谈C#中的Icomparer,ComParer,IComparable)
    APP的闪退和无响应
    APP测试的主要内容
    python数据结构
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/14665658.html
Copyright © 2020-2023  润新知