首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在angular 2中路由加载时,如何显示运行进度条?

在Angular 2中,可以通过使用Angular Router和Angular Material库来显示运行进度条。

首先,确保已经安装了Angular Router和Angular Material库。可以使用以下命令进行安装:

代码语言:txt
复制
npm install @angular/router
npm install @angular/material

接下来,在你的应用程序的根模块中导入所需的模块:

代码语言:txt
复制
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatProgressBarModule } from '@angular/material/progress-bar';

import { AppComponent } from './app.component';
import { HomeComponent } from './home.component';
import { AboutComponent } from './about.component';

const appRoutes: Routes = [
  { path: '', component: HomeComponent },
  { path: 'about', component: AboutComponent }
];

@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    AboutComponent
  ],
  imports: [
    BrowserModule,
    RouterModule.forRoot(appRoutes),
    BrowserAnimationsModule,
    MatProgressBarModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

在上述代码中,我们导入了MatProgressBarModule模块,该模块提供了进度条组件。

接下来,在你的组件模板中使用进度条组件来显示运行进度条。例如,在app.component.html中:

代码语言:txt
复制
<mat-progress-bar mode="indeterminate" *ngIf="loading"></mat-progress-bar>

<router-outlet></router-outlet>

在上述代码中,我们使用*ngIf指令来根据loading变量的值来决定是否显示进度条。你可以根据自己的需求来控制loading变量的值。

最后,在你的组件类中,你可以使用Router来监听路由事件,并在路由开始和结束时更新loading变量的值。例如,在app.component.ts中:

代码语言:txt
复制
import { Component } from '@angular/core';
import { Router, NavigationStart, NavigationEnd } from '@angular/router';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  loading: boolean = false;

  constructor(private router: Router) {
    router.events.subscribe(event => {
      if (event instanceof NavigationStart) {
        this.loading = true;
      } else if (event instanceof NavigationEnd) {
        this.loading = false;
      }
    });
  }
}

在上述代码中,我们使用router.events来订阅路由事件,并在路由开始时将loading变量设置为true,在路由结束时将其设置为false

这样,当路由加载时,进度条将显示出来,当路由加载完成时,进度条将隐藏起来。

推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)和腾讯云对象存储(https://cloud.tencent.com/product/cos)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇

触发主应用路由规则(由路由配置表的 $route.name 判断),将渲染主应用的组件; 第 10 行:微应用渲染区。...未触发主应用路由规则(由路由配置表的 $route.name 判断),将渲染微应用节点; 从上面的分析可以看出,我们使用了路由表配置的 name 字段进行判断,判断当前路由是否为主应用路由,最后决定渲染主应用组件或是微应用节点...micro-app 从上图可以看出,我们主应用的组件和微应用是显示同一片内容区域,根据路由规则决定渲染规则。...", }, ]; export default apps; 通过上面的代码,我们就在主应用中注册了我们的 Angular 微应用,进入 /angular 路由加载我们的 Angular 微应用...ng add single-spa-angular 运行命令,根据自己的需求选择配置即可,本文配置如下: ?

6.7K40

Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

Angular 2中的路由工作原理是什么? 路由是能够让用户视图/组件之间导航的机制。Angular 2简化了路由,并提供了模块级(延迟加载)下配置和定义的灵活性。 ...Angular应用程序具有路由器服务的单个实例,并且每当URL改变,相应的路由就与路由配置数组进行匹配。...成功匹配,它会应用重定向,此时路由器会构建ActivatedRoute对象的树,同时包含路由器的当前状态。重定向之前,路由器将通过运行保护(CanActivate)来检查是否允许新的状态。...Route Guard只是路由运行来检查路由授权的接口方法。...什么是延迟加载如何Angular 2中启用延迟加载? 大多数企业应用程序包含用各式各样的用于特定业务案例的模块。捆绑整个应用程序代码并完成加载,会在初始调用时,产生巨大的性能开销。

17.3K80
  • BuildAdmin06:进度条和Loading页面的实现,路由导航守卫告诉你答案...

    我们访问一些网站,遇到页面加载不出来的时候,通常显示一个进度条,或者一个loading页面的动画页面。 那么,进度条和loading页面是如何实现的呢?...NProgress:进度条 切换路由页面,会在上方显示一个进度条Vue中,借助NProgress可以轻松实现。 1. 安装 使用npm安装nprogress。...路由导航守卫的目的说白了就是监控路由的行为。 点下路由的一瞬间,还未跳转到目标路由,会执行beforeEach导航守卫,这时候就让进度条开始,即调用NProgress.start() 。...Loading页面 浏览器刷新加载页面时间过长,就会出现Loading页面,如图。 BuildAdmin@/util/loading.ts里,实现了Loading页面。...然后将 div的z-index设置到很大,图层就会显示顶层,这样Loading页面就会置于顶层显示

    37600

    提供可制定化的路由加载方式,Vue 如何做到?| 小智内部团队分享

    传统方式 这个方法大家应该都用过,就是路由切换的时候,顶部显示一个加载进度条,我们这里借助的库是 NProgress。...(() => { // 关闭进度条 NProgress.done() }) 很简单的一个配置,运行后,当我们切换路由就会看到顶部有一个进度条了: 这种模式存在两个问题(目前能想到的): 弱网络的情况...我们想要啥效果 我们团队想要的效果是 只要点击菜单,页面就要切换,即使弱网的情况 加载失败要给予一个失败的反馈,而不是让用户傻傻的在那里等待 支持每个路由跳转特有的加载特效 寻找解决方案 为了解决上面的问题...网络断开 可以看到,当我们网络断开的时候,切换页面,会显示我们指定 errorComponent ,不像第一种方式一样会一直卡在页面上加载。...,运行效果如下: 从图片可以看出点击菜单一和三,我们使用菊花的加载方式,点击菜单二就会显示我们自定义的加载方式。

    54820

    Angular实战之使用NG-ZORRO创建一个企业级中后台框架(进阶篇)

    这一章主要介绍的是如何在创建好的后台管理页面框架的快速生成NG-ZORRO相关的组件,并且介绍Angular相关目录结构、生命周期函数,路由配置和使用相关知识点,以及如何使用Angular CLI使用一行代码快速添加...钩子 用途及时机 ngOnChanges() 当 Angular(重新)设置数据绑定输入属性响应。...ngOnInit() Angular 第一次显示数据绑定和设置指令/组件的输入属性之后,初始化指令/组件。 第一轮 ngOnChanges() 完成之后调用,只调用一次。...my-blog项目中创建博客后台页面首页组件,配置路由(多模块路由配置),声明运行组件: 1、创建首页组件: ng generate component /pages/my-blog/index ?...,我们可以通过延迟加载路由的方式来加载相关模块的子路由

    4K20

    Angular性能优化实践——巧用第三方组件和懒加载技术

    应该有很多人都抱怨过 Angular 应用的性能问题。其实,搭建Angular项目,通过使用打包、懒加载、变化检测策略和缓存技术,再辅助第三方组件,便可有效提升项目性能。...为了帮助开发者深入理解和使用Angular,本文将以我司客户中最为典型的业务场景——在线表格编辑为例,演示如何借助懒加载技术,基于 Angular的框架中实现在线导入导出Excel以及数据在线填报的功能...中配置SpreadJS CS Angular应用程序中使用 SpreadJS 使用Angular CLI构建和运行项目 完成上述环境搭建,便可将表格编辑器组件集成到 Angular 项目中,实现在线导入导出...开始优化之前,我们先来分析一下是什么因素影响了项目的性能。 影响项目性能的因素 集成 SpreadJS 表格组件后,项目的公式数据处理速度符合预期,页面在运行也较为流畅。...但是发布后,用户打开页面加载时间上要比开发环境有所延长,带来的用户体验较差。经过调研,发现在Angular的默认中,NgModule都是急性加载的,也就是会在应用加载尽快加载

    4.1K20

    【Hybrid开发高级系列】AngularJS(二)——常用$服务

    $apply()方法可以angular框架之外执行angular JS的表达式,例如:DOM事件、setTimeout、XHR或其他第三方的库。...它可以用来恢复请求或者有时可以用来撤销请求之前所做的配置,比如说关闭进度条,激活按钮和输入框什么之类的。...var promise = $http({     method:'GET',     url:"data.json" });         由于$http方法返回一个promise对象,我们可以响应返回用...我们可以利用路由服务定义这样一种东西:对于浏览器所指向的特定URL,Angular将会加载显示一个模板,并实例化一个控制器来为模板提供内容。         ...(protocol, host, port, path, search, hash).formatDate 1.7.2 $location不会做         当浏览器的URL改变,不会重新加载整个页面

    42040

    教程| Angular 4 中加载功能模块(下)

    /currency/currency.module#CurrencyModule' } ]; 更新后的代码告诉 Angular,在用户请求加载辅助模块。...当路由器导航到更新后的地址,它会使用 loadChildren 字符串动态加载 WeatherModule 或 CurrencyModule。...幕后过程 继续操作之前,我们看看此加载机制的细节。首先在 Chrome 浏览器中运行该应用程序。 Windows 机器上,按下 Fn+F12。 Mac 上,按下 Command->alt->i。...在这种情况下,贪婪加载主要模块后,路由器开始预加载标有 loadChildren 属性的所有剩余模块。 要为预加载重新配置应用程序,可编辑您的 app-routing.module.ts,如下所示。...请参见 Angular 文档的 路由和导航 部分,了解如何自定义预加载配置。 结束语 加载时间是应用程序性能的关键因素,它会影响应用程序的用户体验。

    2.3K10

    Angular 1 vs. Angular 2 深度比较

    : 不清楚哪些监视器会运行,什么顺序,多少次 模型更新顺序难以推论和预期 摘要循环多次运行导致时间消耗 Angular 团队制定 Angular 2 开发方向,其中一点是提取 Angular...这就意味着,如果说主路由 loadsbackendService 我们导向了路由 B,可以延迟加载其他服务指定到这个路由。...因此,页面初始化并且 Angular 介入之前,Angular 表达式将被传给组件,并直接作用于它。比如 image 元素用提供的 url 立即加载图片。...Angular 2 最初版本发布临近这会变得更加清晰,但是现在路由可能是一个主要的可行迁移办法。...新的 Angular 2 路由向下兼容 Angular 1,将允许一个工程同时有 Angualr 1 和 Angular 2 路由

    2.8K100

    AngularDart4.0 英雄之旅-教程-07路由

    开始阶段 继续英雄之旅之前,请确认您具有以下结构。 ? 如果该应用程序尚未运行,请启动该应用程序。 进行更改时,请通过重新加载浏览器窗口来保持运行。...该应用程序仍然运行显示英雄。 添加路由 应该在用户点击按钮后显示英雄而不是自动显示。 换句话说,用户应该能够导航到英雄列表。...component(组件):此路由导航到(HeroesComponent)将被激活的组件。 路由和导航页面阅读更多关于定义路由的信息。...浏览器中,转至应用程序根目录(/)并重新加载。 该应用程序显示dashboard ,您可以dashboard 和heroes之间导航。 ...英雄的名字将显示相同的方式。 主要的变化是如何得到英雄的名字。

    17.6K30

    Angular2 之 路由与导航基础知识路由模块组件路由路由守卫

    导航是很简单的,只是不同页面之间的切换,路由是实现导航的一种。 一个url对应的一个页面,angular2中是一个组件。定义一个规则。...如果当前URL无法匹配上我们配置过的任何一个路由中的路径,路由器就会匹配上这一个。当需要显示404页面或者重定向到其它路由,该特性非常有用。...显示路由器生成的视图。...CanActivateChild守卫的工作方式和CanActivate守卫很相似,不同之处在于它会在每个子路由被激活之前运行。我们保护了管理特性模块不受未授权访问,也同样可以特性模块中保护子路由。...异步加载特征模块和决定是否预加载它们路由器调用preload方法。 preload方法有两个参数,第一个参数Route提供路由配置,第二个参数是预加载特征模块的函数。

    3.3K10

    Angular学习(01)-架构概览

    路由 一个项目这么多模块,Angular 并不会一开始就把所有模块都加载,而是惰性加载,按需加载。 那么,什么时候会去加载呢?...另一种方式是,在上层模块的路由表中使用 loadChildren 加载各个功能模块,然后各个功能模块默认路由显示成空视图,各自内部再通过配置 children 的路由表方式来管理各个模块内部自己的路由表...利用 Angular Cli 工具生成脚手架,默认就已经生成了很多配置项,而且此时,项目已经是可以运行的,因为也自动生成了一个根模块和根视图,默认页面是 Angular 的欢迎界面。... 就是根组件 AppComponent (自动生成的)的组件标签,当 Angular HTML 文件中发现有组件标签,就会去加载该组件所属的模块,并去解析组件的模板文件...app.module.ts 的 imports 中将该路由配置导入,这样当路由到 home ,会去加载 home 模块,然后看看 home 模块的路由配置: //home-routing.module.ts

    3.6K50

    Vue3+TS的项目中使用NProgress进度条

    本文主要介绍如何在 Vue3+TS 的项目中使用 NProgress 进度条,示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友往下看。...NProgress.configure({ easing: 'ease', // 动画方式 speed: 1000, // 递增进度条的速度 showSpinner: false, // 是否显示加载...NProgress.done(); }; 使用 一般我们会在页面切换,也就是跳路由的时候会显示进度条,因此我们需要在 beforeEach(路由切换之前)和 afterEach(路由切换完成后)...NProgress.inc(); 如果要增加特定值,可以将其作为参数传递: NProgress.inc(0.2); 强制完成 通过传递 true 到 done(),即使没有显示进度条也会显示进度条。...important; } 完成 效果如上图,至此 Vue3+TS 项目上使用 NProgress 进度条的文章就结束了。

    3.4K20

    Vue后台管理系统开发,相关代码的笔记。

    } }); } } } return cahced; } 需要考虑 1.如何显示的菜单响应路由的变化...本身菜单被点击了,自己会变化被选中的状态,需要考虑的是从其他页面跳转过来的时候,如何正常匹配显示被选的菜单; 路由包括静态的路由和有变化的参数路由,某些情况下还会具有参数。...提示 由此还需考虑父路由存在相似的路由片段,匹配的优先级的问题 2.如何组织目录?...将布局看组架子(布局组件)、视图看做需要的内容(视图组件),布局承载内容; 通过全局状态的设置来动态调整布局组件的显示和隐藏。 4.如何组织无限层级的子路由作为菜单?...模板方式实现起来非常的麻烦,JSX的方式更加适合这种需求; 首先需要根据当前路由获取一个可以作为祖先的父级路由对象 5.运行中的router getRoutes(); 获取一个包括所有路由项的数组;不同层次的路由

    71520

    Angular 从入坑到挖坑 - Router 路由使用入门指北

    一、Overview Angular 入坑记录的笔记第五篇,因为一直加班的缘故拖了有一个多月,主要是介绍 Angular如何配置路由,完成重定向以及参数传递。...至于路由守卫、路由加载等“高级”特性,并不会在本篇文章中呈现 对应官方文档地址: 路由与导航 配套代码地址:angular-practice/src/router-tutorial 二、Contents... Angular 项目中,系统的路由需要我们将一个 url 地址映射到一个展示的组件,因此需要手动的去设置 url 与组件之间的映射关系 因为我们使用 Angular CLI 创建项目,选择了添加路由模组...解析路由,是按照我们定义路由的顺序依次进行的,一旦匹配就会立即终止。...,因此当嵌套路由配置完成之后,嵌套的父级页面上,我们需要定义一个 标签用来指定子路由的渲染出口,最终的效果如下图所示 我是父路由页面显示的内容

    4.2K50

    Angular 从入坑到挖坑 - 路由守卫连连看

    一、Overview Angular 入坑记录的笔记第六篇,介绍 Angular 路由模块中关于路由守卫的相关知识点,了解常用到的路由守卫接口,知道如何通过实现路由守卫接口来实现特定的功能需求,以及实现对于特性模块的惰性加载...4.3、异步路由 4.3.1、惰性加载 当应用逐渐扩大,使用现有的加载方式会造成应用在第一次访问加载了全部的组件,从而导致系统首次渲染过慢。...当问题解决后,就可以针对 crisis 模块设置惰性加载 配置惰性路由,我们需要以一种类似于子路由的方式进行配置,通过路由的 loadChildren 属性来加载对应的模块,而不是具体的组件,修改后的...,框架会通过 loadChildren 字符串来动态加载 CrisisModule,然后把 CrisisModule 添加到当前的路由配置中,而惰性加载和重新配置工作只会发生一次,也就是路由首次被请求执行...路由守卫来进行路由的认证授权,但是当我们并没有权限访问该路由的权限,却依然点击了链接,此时框架路由仍会加载该模块。

    3.8K30

    Angular2 VS Angular4 深度对比:特性、性能

    接下来一起了解Angular2这个版本发布的原因以及如何将其添加到Web开发中。 ...这个Angular版本更加注重于开发移动应用程序,开发人员可以使用它创建跨平台的应用程序,解决了移动应用程序(功能,加载时间等)的挑战后,Angular2可以更容易的处理桌面组件。...动态载入: 这是之前的Angular版本均不具备的功能,Angular2包含了这个功能,即使开发人员忙碌,也能够添加新的指令或控件。 模板: Angular2中,模板编译过程是异步的。...由于代码依赖于ES6模块,因此模块加载程序将通过部分组件上引用它们,来加载依赖关系。...此外,它的异步字符允许开发人员管道中,实现对用户进行身份验证或加载控件信息的服务器请求。

    8.7K20

    为 Vue 的惰性加载加一个进度条

    处理大文件,这可能会导致用户体验不佳。 借助 Webpack,可以用 import() 函数而不是 import 关键字 Vue.js 中按需加载页面。 为什么要按需加载?.../views/About.vue' ) import() 和 import 之间的主要区别是在运行加载由 import() 加载的 ES 模块,在编译加载由 import 加载的 ES 模块。...这就意味着可以用 import() 延迟模块的加载,并仅在必要加载。 实现进度条 由于无法准确估算页面的加载时间(或完全加载),因此我们无法真正的去创建进度条。也没有办法检查页面已经加载了多少。...页面顶端的进度条 为延迟加载触发进度条 现在 ProgressBar 正在事件总线上侦听异步组件加载事件。当某些资源以这种方式加载应该触发动画。...总结 本文中,我们禁用了 Vue 应用中的预取和预加载功能,并创建了一个进度条组件,该组件可显示以模拟加载页面的实际进度。

    3.3K30

    Angular开发实践(六):服务端渲染

    Angular Universal Angular服务端渲染方面提供一套前后端同构解决方案,它就是 Angular Universal(统一平台),一项服务端运行 Angular 应用的技术。...renderModuleFactory 函数接受一个模板 HTML 页面(通常是 index.html)、一个包含组件的 Angular 模块和一个用于决定该显示哪些组件的路由作为输入。...快速显示首页 快速显示首页对于吸引用户是至关重要的。 如果页面加载超过了三秒中,那么 53% 的移动网站会被放弃。 你的应用需要启动的更快一点,以便在用户决定做别的事情之前吸引他们的注意力。...AppServerModule 还会告诉 Angular 再把你的应用以 Universal 方式运行时,该如何引导它。...它是在这个服务器上运行时才需要的一些可选的 Angular 依赖注入提供商。当你的应用需要那些只有当运行在服务器实例中才需要的信息,就要提供 extraProviders 参数。

    4.8K100
    领券