Angular最新教程-第八节 路由一(路由配置)

简介: Angular最新教程-第八节 路由一(路由配置)

Angular之所以被称为单页面应用,就是因为我们在改变浏览器URL的时候,
不触发刷新当前页面的行为,我们看到的所有的界面,其实是在一个主URL中。
这个功能(功能?现象?表现?随便吧!)就是通过路由实现的。
下面我们先简单的看一个关于路由的例子。

image.png

当我们点击上面的导航栏时,当前页面的地址会变成类似http://localhost:63342/test.html#about
尾部带的
#about就是我们常常说的锚标记,上述例子中我们使用的是锚标记最传统的用法,

直接连接到所在页面的其他位置,比如这个例子中,本来about部分的内容是在窗口之外的,
访问量#about之后,页面就会自动滚动,将它展示出来。
关于路由的其他详细介绍可以参考我之前的博客。
ionic入门教程第十九课-ionic路由详解(state、route、resolve)
http://blog.csdn.net/onil_chen/article/details/51758696


以上面文章中提到的view概念不同的是,
在Angular4中,使用的是
<router-outlet></router-outlet>
来设置页面的渲染位置。
根据我们上节课的例子,里面,我们需要反复渲染的是图中标注区域。

image.png


而保留navbar和网站状态。


导入路由模块

打开\src\app\app.module.ts
在头部导入RouterModule和Routes
import { RouterModule , Routes } from ‘@angular/router’;
RouterModule是指路由模块。
Routes是应用程序支持的路由配置的数组。


新建路由对象

image.png

我们还是查看Angular中文社区的样式,我们先创建三个路由。
首先我们先创建三个组件。
$ ng generate component lates

$ ng generate component hots

$ ng generate component update
这里需要注意的是,我们使用命令创建组件,会自动被加到@NgModule的declarations中

image.png

如果你是手动创建组件,那么你需要把所有用到的组件,加到这个位置。
然后我们设置路由参数是这样子的
{path:'latest',component:LatestComponent}
path表示路径,component表示路由对应的组件。


然后我们也有可能访问了没有路由的页面,
我们并不希望界面没有渲染,而是被重定向到最新模块。
{path:'',redirectTo:'latest',pathMatch: 'full'}
redirectTo表示的是讲当前路径重定向到另一个路径。
最终我们的router对象就是

image.png


使用路由配置

刚刚我们已经配置了我们的路由对象,接下来我们要把它引用到我们的项目中。
在@NgModule的imports中加入
RouterModule.forRoot(routes)

image.png

在@NgModule的providers中加入{provide:LocationStrategy,useClass:HashLocationStrategy}
这里涉及到路由策略的内容,我们后续课程单独讲解。
上面的设置就是使用锚标记策略。


设置渲染界面

打开src\index.html在head下面加入<base href="/">
打开\src\app\app.component.html

image.png


保存运行。

image.png


点击导航切换

image.png


源代码:百度云 链接:http://pan.baidu.com/s/1pKEV4HP 密码:fief
码云:
https://gitee.com/xiaohuOni/oniplan-ng
有码云的帮忙给个star,感谢。


这节课的内容就到这里完成了。
感谢您的阅读。
我是莽夫,希望你开心。

目录
相关文章
|
3月前
|
Java Spring
🔥JSF 与 Spring 强强联手:打造高效、灵活的 Web 应用新标杆!💪 你还不知道吗?
【8月更文挑战第31天】JavaServer Faces(JSF)与 Spring 框架是常用的 Java Web 技术。本文介绍如何整合两者,发挥各自优势,构建高效灵活的 Web 应用。首先通过 `web.xml` 和 `ContextLoaderListener` 配置 Spring 上下文,在 `applicationContext.xml` 定义 Bean。接着使用 `@Autowired` 将 Spring 管理的 Bean 注入到 JSF 管理的 Bean 中。
65 0
|
3月前
|
iOS开发 Android开发 MacOS
从零到全能开发者:解锁Uno Platform,一键跨越多平台应用开发的神奇之旅,让你的代码飞遍Windows、iOS、Android、macOS及Web,技术小白也能秒变跨平台大神!
【8月更文挑战第31天】从零开始,踏上使用Uno Platform开发跨平台应用的旅程。只需编写一次代码,即可轻松部署到Windows、iOS、macOS、Android及Web(通过WASM)等多个平台。Uno Platform为.NET生态带来前所未有的灵活性和效率,简化跨平台开发。首先确保安装了Visual Studio或VS Code及.NET SDK,然后选择合适的项目模板创建新项目。项目结构类似传统.NET MAUI或WPF项目,包含核心NuGet包。通过简单的按钮示例,你可以快速上手并构建应用。Uno Platform让你的技术探索之旅充满无限可能。
69 0
|
3月前
|
SEO 搜索推荐 数据采集
让 JSF 应用秒变搜索引擎宠儿!揭秘 SEO 优化的神奇魔法,让你的网站脱颖而出!
【8月更文挑战第31天】随着互联网的发展,搜索引擎已成为用户获取信息的主要途径,SEO 对 Web 应用至关重要。本文介绍如何提升 JavaServer Faces(JSF)应用的 SEO 友好性,包括关键词优化、网页结构优化和外部链接建设等基础知识,并提出了使用语义化 HTML 标签、优化页面标题和描述、生成静态 HTML 页面及 URL 重写等具体策略,帮助您的网站在搜索引擎中获得更高排名。
32 0
|
3月前
|
安全 开发者
精通Angular路由管理:从基础设置到高级配置,打造复杂SPA导航系统的全方位指南
【8月更文挑战第31天】在单页应用(SPA)中,路由管理至关重要。Angular通过其强大的路由模块提供灵活高效的解决方案。本文通过代码示例详细介绍如何在Angular中设置和管理路由,包括基础路由配置、懒加载、路由保护及高级配置,帮助开发者构建高效安全的导航系统,满足复杂SPA需求。随着Angular的发展,路由管理将更加完善,值得持续关注。
33 0
|
3月前
|
前端开发 UED
Angular 动画教程超赞!掌握让应用更具交互性的技巧,开启精彩的前端动画之旅!
【8月更文挑战第31天】在现代前端开发中,提升用户体验至关重要,而动画是增强应用交互性的有效手段。Angular 提供了强大的动画功能,可轻松添加各种动画效果。本文介绍了 Angular 动画的基本概念、使用动画模块、事件触发动画、动画序列与并行执行、性能优化及结合第三方动画库等最佳实践。通过遵循这些实践,可以充分发挥 Angular 动画的优势,提升用户体验。下面是一个简单的示例应用,展示了如何使用 Angular 动画实现元素的显示和隐藏效果。
56 0
|
3月前
|
前端开发 JavaScript 开发者
Angular与Webpack协同优化:打造生产级别的打包配置——详解从基础设置到高级代码拆分和插件使用
【8月更文挑战第31天】在现代前端开发中,优化应用性能和加载时间至关重要,尤其是对于使用Angular框架的项目。本文通过代码示例详细展示了如何配置Webpack,以实现生产级别的打包优化。从基础配置到生产环境设置、代码拆分,再到使用加载器与插件,每个步骤都旨在提升应用效率,确保快速加载和稳定运行。通过这些配置,开发者能更好地控制资源打包,充分发挥Webpack的强大功能。
88 0
|
3月前
|
JavaScript 前端开发 API
如何在 Angular 路由中使用路由解析器
如何在 Angular 路由中使用路由解析器
37 0
|
3月前
如何在 Angular 路由中使用路由守卫
如何在 Angular 路由中使用路由守卫
46 0
|
3月前
如何在 Angular 路由中使用查询参数
如何在 Angular 路由中使用查询参数
27 0
|
3月前
|
API 开发者 UED
PrimeFaces:JSF的魔法衣橱,解锁UI设计的无限可能!
【8月更文挑战第31天】本文介绍如何结合 JSF(JavaServer Faces)和 PrimeFaces 构建美观且功能强大的现代用户界面。PrimeFaces 提供丰富的 UI 组件库,包括按钮、输入框、数据网格等,支持现代 Web 标准,简化界面开发。文章通过具体示例展示如何使用 `&lt;p:inputText&gt;` 和 `&lt;p:calendar&gt;` 等组件创建用户表单,并用 `&lt;p:dataTable&gt;` 展示数据集合,提升 JSF 应用的易用性和开发效率。
60 0