Angular routing生成路由和路由的跳转


什么是路由

路由的目的是可以让根组件按照不同的需求动态加载不同的组件。

根据不同地址,加载不同组件,实现单页面应用。

Angular 命令创建一个配置好路由的项目

命令创建项目

ng new demo02 --routing

  

安装依赖

npm install

  

启动项目

ng serve --open

  

  

与没有创建路由的项目比较

创建路由项目的文件比没有创建路由项目的文件多了一个 app-routing.module.ts 文件。

  

然后在 app.module.ts 文件中引入了路由文件。

  

app.component.html 文件中加入了动态加载组件显示的地方。

路由学习案例

创建组件

创建几个组件,首先创建一个 components 文件夹存放将要创建的组件。

创建home组件

ng g component components/home

  

创建news组件

ng g component components/news

  

创建user组件

ng g component components/user

配置路由,点击不同的导航显示不同组件

在 app-routing.module.ts 中配置路由。

首先引入组件

// 引入组件
import {HomeComponent} from './components/home/home.component'
import {NewsComponent} from './components/news/news.component'
import {UserComponent} from './components/user/user.component'

配置路由

// 配置路由
const routes: Routes = [
{
path:'home',
component:HomeComponent,
},
{
path:'news',
component:NewsComponent,
},
{
path:'user',
component:UserComponent,
}
];

  

    

添加导航按钮

在根组件 app.component.html 文件中添加导航。

<header>
<ul>
<li><a routerLink="home" >首页</a></li>
<li><a routerLink="news" >新闻</a></li>
<li><a routerLink="user" >用户</a></li>
</ul>
</header>

  

    

我们最简单的路由写完了!!!

但是我们发现一个问题,当我们初始化整个项目的时候,默认是没有组件的

  

我们如果想一进来就加载首页组件,就涉及到默认的跳转路由!

默认加载组件(空路由)

  {
path:'', // 空路由
redirectTo:'home', // 重定向到
pathMatch:'full'
}

  

如果路由输入错误,还是跳回首页(也可以匹配空路由)

 // 匹配不到路由时候加载的组件
{
path:'**', // 任意路由
component:HomeComponent
}

  

Angular routing生成路由和路由的跳转的更多相关文章

  1. 使用Angular CLI生成路由

    第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...

  2. Angular创建路由从主界面跳转到我们的cesium界面

    我们要在一个独立的顶级模块中加载和配置路由器,它专注于路由功能,然后由根模块 AppModule 导入它. 按照惯例,这个模块类的名字叫做 APPRoutingModule,并且位于 src/app  ...

  3. Angular4中路由Router类的跳转navigate

    最近一直在学习angular4,它确实比以前有了很大的变化和改进,好多地方也不是那么容易就能理解,好在官方的文档和例子是中文,对英文不太好的还是有很大帮助去学习. 官方地址:https://angul ...

  4. HCNA Routing&Switching之静态路由

    前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...

  5. vue-router同路由$router.push不跳转一个简单解决方案

    vue-router同路由$router.push不跳转一个简单解决方案 vue-router跳转一般是这么写: toCurrentPage: function(thisId){ this.$rout ...

  6. vue+elementui搭建后台管理界面(5递归生成侧栏路由)

    有一个菜单树,顶层菜单下面有多个子菜单,子菜单下还有子菜单... 这时候就要用递归处理 1 定义多级菜单 修改 src/router/index.js 的 / 路由 { path: '/', redi ...

  7. 每天一点点之vue框架开发 - vue-router路由进阶(路由别名、跳转、默认路由、二级路由、路由守卫)

    路由别名   在main.js中的路由中添加name来创建别名 const routes = [ {path:'/footer',name:footerLink,component:Footer} ] ...

  8. react第十四单元(react路由-react路由的跳转以及路由信息)

    第十四单元(react路由-react路由的跳转以及路由信息) #课程目标 理解前端单页面应用与多页面应用的优缺点 理解react路由是前端单页面应用的核心 会使用react路由配置前端单页面应用框架 ...

  9. react第十三单元(react路由-react路由的跳转以及路由信息) #课程目标

    第十三单元(react路由-react路由的跳转以及路由信息) #课程目标 熟悉掌握路由的配置 熟悉掌握跳转路由的方式 熟悉掌握路由跳转传参的方式 可以根据对其的理解封装一个类似Vue的router- ...

随机推荐

  1. 虚拟地址IP

    http://blog.csdn.net/whycold/article/details/11898249

  2. 正则表达式中\b和\s有什么区别

    字符串:abcsdsadas abc asdsadasdabcasdsa使用\sabc\s和\babc\b都能匹配中间的abc,这种方法不是重复了么,/s是匹配空格回车等得,/b网上教程说得不清楚什么 ...

  3. PDO数据访问抽象层(上)

    PDO比MySQLi功能强大 PDO可以访问MySQL及其它数据库 一.造对象 <?php $dsn = "mysql:dbname = crud;host = localhost&q ...

  4. linux中使用另一用户打开拥有图形界面的程序

    在archlinux中使用oracle用户执行oui无法显示图形界面的问题.结果没解决,后来发现执行 xhost +si:localuser:oracle, 然后再使用oracle用户执行oui即可. ...

  5. caffe的运行create_data.sh前对VOC2007图片格式的更改

    运用caffe进行深度学习之前需要对图片进行预处理,将图片的大小,格式等进行修改 将300*300的图片改为256*256格式 则将以下参数改为: min_dim=256 max_dim=256 wi ...

  6. IE浏览器解决无法识别js中getElementsByClassName问题

    关于ie浏览器无法识别js中getElementsByClassName问题,现通过以下方法,引用如下js /** *打印js对象详细信息 */ function alertObj(obj) { va ...

  7. GBDT:梯度提升决策树

    http://www.jianshu.com/p/005a4e6ac775 综述   GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Ad ...

  8. 如何在Sitecore CMS中打开内容编辑器

    在Sitecore中开发网站时,大多数项目管理都来自内容编辑器.创建,删除,修改,移动,发布,排序和查看项目只是可以在Content Editor界面中处理的众多任务中的一小部分. 由于内容编辑器对于 ...

  9. JavaScript--详解typeof的用法

    typeof定义      typeof是一元运算符,用来返回操作参数的类型(不是值)    检查一个变量是否存在,是否有值      typeof在两种情况下会返回"undefined&q ...

  10. Spark学习之路 (十七)Spark分区

    一.分区的概念 分区是RDD内部并行计算的一个计算单元,RDD的数据集在逻辑上被划分为多个分片,每一个分片称为分区,分区的格式决定了并行计算的粒度,而每个分区的数值计算都是在一个任务中进行的,因此任务 ...