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

Angular 8 routlerlink仅在页面重新加载后才起作用

Angular 8中的routerLink是一个指令,用于在页面中创建导航链接。它允许我们通过点击链接来导航到不同的页面或组件。然而,有时候我们可能会遇到一个问题,即当页面重新加载时,routerLink指令才会起作用。

这个问题的原因是Angular的路由器在页面重新加载时会重新解析URL,并根据URL来确定要加载的组件。因此,当页面重新加载时,路由器会重新初始化,并重新解析URL,这时routerLink指令才会生效。

为了解决这个问题,我们可以使用routerLinkActive指令来添加一个活动CSS类,以在页面重新加载后仍然保持链接的活动状态。routerLinkActive指令会自动检测当前URL是否与指定的路由匹配,并在匹配时添加指定的CSS类。

下面是一个示例:

代码语言:txt
复制
<a routerLink="/home" routerLinkActive="active">Home</a>
<a routerLink="/about" routerLinkActive="active">About</a>

在上面的示例中,当我们点击Home链接时,如果当前URL与"/home"匹配,那么该链接会被添加一个名为"active"的CSS类。同样地,当我们点击About链接时,如果当前URL与"/about"匹配,那么该链接也会被添加"active"类。

这样,即使页面重新加载,我们仍然可以通过检查链接上是否存在"active"类来确定当前活动的链接。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上推荐的腾讯云产品仅作为示例,其他云计算品牌商也提供类似的产品和服务。

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

相关·内容

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

完成,用户将可以像这样浏览应用程序: ? 为了满足这些要求,您将添加Angular路由器到应用程序。 有关路由器的更多信息,请阅读路由和导航页面。  ...在进行更改时,请通过重新加载浏览器窗口来保持运行。 行动计划 计划如下: 将AppComponent转换为仅处理导航的应用程序外壳程序。...分割AppComponent 当前的应用程序加载AppComponent并立即显示英雄列表。 修改的应用程序应该提供一个可选的视图(Dashboard和Heroes),然后默认为其中的一个。...将AppComponent类重命名为HeroesComponent(仅在本地重命名,仅在此文件中)。 将选择器my-app重命名为my-heroes。...在浏览器中,转至应用程序根目录(/)并重新加载。 该应用程序显示dashboard ,您可以在dashboard 和heroes之间导航。

17.5K30

Angular JS】网站使用社会化评论插件,以及过程中碰到的坑

比如我发现了一个严重的问题,也有一些网友提出,就是有时候必须手动再刷新一次页面,才能显示评论框。这个问题后来采用了它的动态加载方式得以解决。   经过对比,比较,我最后选择的就是多说。 C....因此多次调试没有解决问题,我选择了放弃。 2. 如何在Angular JS中正确使用评论插件?...针对这个功能,其实每种插件都会提供线程Thread的概念,这个功能是指针对不同Thread ID的页面加载不同的评论。   以多说为例。   ...但在Angular JS中没有必要,Angular JS提供了Directive,即自定义标签的功能,可定义一个directive,在每个页面引用即可。...不同插件对不同页面不同评论的支持不同,有的支持好,有的支持不好。像disqus,和多说支持就较好。   3. Angular JS和插件组合使用时可能也有坑。

1.9K80

Angular JS】网站使用社会化评论插件,以及过程中碰到的坑

比如我发现了一个严重的问题,也有一些网友提出,就是有时候必须手动再刷新一次页面,才能显示评论框。这个问题后来采用了它的动态加载方式得以解决。     经过对比,比较,我最后选择的就是多说。 C....因此多次调试没有解决问题,我选择了放弃。 2. 如何在Angular JS中正确使用评论插件?...针对这个功能,其实每种插件都会提供线程Thread的概念,这个功能是指针对不同Thread ID的页面加载不同的评论。   以多说为例。   ...但在Angular JS中没有必要,Angular JS提供了Directive,即自定义标签的功能,可定义一个directive,在每个页面引用即可。...不同插件对不同页面不同评论的支持不同,有的支持好,有的支持不好。像disqus,和多说支持就较好。   3. Angular JS和插件组合使用时可能也有坑。

1.6K00

Angular JS + Express JS入门搭建网站

JS控制编写的页面,指定Angular JS的app为myApp,注意看其中的表达式,{{name}},name就是一个动态变量。...文件,否则不起作用。   ...这里Express JS有一个重要概念是中间件middleware,可以加载使用很多Express JS或其他模块提供的模块作为中间件,它的作用是处理http请求,一个中间件处理完,可以传递给下一个中间件...app.use('/', routes); 11 12 http.createServer(app).listen(3000);   这里,就是使用Express JS建立一个server,注意第8行代码的作用是指定页面的文件夹...这里讲一个小地方,最初试验时页面的变量怎么也不替换,花了很多个小时,换了Angular JS库,改变了控制器等写法,都没用。最后查资料和文档,发现只有页面中有ng-view,才会起作用

4.4K60

使用 Angular Transfer State 的一个具体例子

使用 Angular Transfer State 的一个具体例子 Using TransferState API in an Angular v5 Universal App 让我们用一个具体的例子来说明这篇文章...这些页面将包含浏览器应用程序,因此用户可以在加载第一页使用 Angular 的强大功能继续在应用程序中导航。 您可以按照以下步骤尝试这个简单的示例。...现在,如果您直接访问页面 http://your-domain/Paris(这是访问者来自搜索引擎的典型情况),您可以观察到页面闪烁 - 这是因为内容已经存在并且已经下载到本地了,然后浏览器应用程序会重新加载并再次显示...为此,服务器应用程序将在它生成的 HTML 页面中添加我们要传输的数据。 包含在此生成的 HTML 页面中的浏览器应用程序将能够读取此数据。 在这个分支查看解决方案。...我们还从传输状态中删除了提供的数据,因此页面重新加载将不再使用提供的数据。 我们可以通过调用 hasKey 方法来检测我们是在服务器上还是在浏览器应用程序上。 此方法仅在浏览器中返回 true。

65700

模块化开发 Angular 应用

登录内容将包含一个登录的页面和一个注册的页面。也许会有一个帮助的页面。每个页面都是以组件的方式呈现。...AuthenticationService 复制代码 由于这些页面是完全独立的,并且与我们应用程序的内容页面无关。我们决定将它们捆绑到一个单独的模块中。...也可以延迟加载模块。这是什么意思呢? Angular 程序的下载体积很大。根据你的用户场景,这是一个很大的问题。特别是在移动端,加载一个应用程序可能需要耗费很长时间。...减少加载时间的一种方法是将应用程序拆分成模块。 当你以惰性方式加载模块时,它不会包含在初始的程序中。相反,它仅在需要的时候下载。为啥要下载我们还没用得上的组件呢,是吧? 那么,它是怎么工作的?...当我们再次进入路由,登陆组件会被展示出来。这是因为我们配置其为默认路由。

3K10

AngularJs ng-route路由详解

更多内容参考:Angularjs总结 前提 首先需要在页面引入angularangular-route,注意要在angular-route之前引入angular <script src="../....,而这个参数只有在<em>加载</em>完<em>angular</em>才会出现。...如果resolve中是一个promise对象,那么会等它执行成功<em>后</em>,<em>才</em>注入到控制器中,此时控制器会等待resolve中的执行结果。 详细的例子,可以参考下面的样例。...redirectTo:重定向地址 reloadOnSearch:设置是否在只有地址改变时,<em>才</em><em>加载</em>对应的模板;search和params改变都不会<em>加载</em>模板 caseInsensitiveMatch:路径区分大小写...因此b<em>页面</em>,在3秒<em>后</em>才会<em>加载</em>成功。

1.9K61

Angular 初始化显示出大括号语法的解决方法(ngCloak)

对于这个问题由于JavaScript去操作DOM,都会等待DOM加载完成(DOM ready)。...对于angular会在DOM ready完会回去解析html view Template,所以对于Chrome这类快速的浏览器你会看见有闪烁的情况出现。...而对于IE7,8这类解析稍慢的浏览器大部分情况下是不会出现这个问题的。 在angular中为我们提供了ng-cloak来实现纺织闪烁的方案,我们只需要在需要的地方加上ng-cloak。...$$csp() && angular.element(document).find('head').prepend('@charset "UTF-8";[ng...那我们只能使出我们必杀技,自己把css加入我们的css文件引入heade,启动加载,ok这样就可以完美解决了。(如果你也遇见了加了ng-cloak还不起作用的话,那么试试直接引入css文件吧)

1.5K10

JavaScript 启动性能瓶颈分析与解决方案

V8 推荐尽早加载较大的模块,毕竟我们只有一个 streamer 线程。 评估我们依赖的解析消耗。...Angular 应用就受益于这种模式: ? 现代浏览器是如何提高解析与编译速度的? 不用灰心,你并不是唯一纠结于如何提升启动时间的人,我们 V8 团队也一直在努力。...Chrome 42 开始引入了所谓的代码缓存的概念,为我们提供了一种存放编译的代码副本的机制,从而当用户二次访问该页面时可以避免脚本抓取、解析与编译这些步骤。...Script Streaming Script Streaming允许在后台线程中对异步脚本执行解析操作,可以对于页面加载时间有大概 10% 的提升。上文也提到过,这个机制同样会对同步脚本起作用。...这也就是所谓的 V8 解析时间非线性的原因,任何一个处于 N 层深度的函数都有可能被重新分析 N 次。

98220

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

本教程将介绍如何在 Angular 中开发和加载功能模块。尽管对于较小的应用程序,根模块就足够用了,但对于更大更复杂的应用程序,需要创建功能模块。还需要能够高效地加载模块,以获得最佳应用程序性能。...请注意,本教程适用于熟悉使用 Angular 进行基本 Web 应用程序开发的开发人员。 Angular 中的功能模块 单页 Web 应用程序在启动时仅呈现一个 HTML 页面。...除了该 HTML 页面之外,服务器还会向客户端发送一个应用程序引擎。该引擎会控制整个应用程序,包括处理和加载 HTML 页面。...在示例应用程序中,将使用惰性加载来满足以下应用程序需求: 仅在用户请求时加载应用程序区域。 加快仅访问某些(优先)区域的用户的加载速度。 扩展应用程序功能而不增加初始加载包的大小。...查看 Sources/top/ng:// 部分,然后重新加载 URL。如图 7 所示,您会看到在重启应用程序时自动加载了 AppModule 和 BaseModule。 图 7.

2.2K10

什么叫单页面开发_获取当前页面url

: 单页面开发常用于webapp开发和后台管理系统等 单页面应用原理: 我们通常所说的单页面应用程序通常是通过前端框架vue, react, angular进行开发,单页面程序将所有的活动局限于一个...web页面中,仅在该web页面初始化时加载相应html,js和css,一旦页面加载完成,spa不会因为用户的操作而进行页面重新加载或跳转,而是利用js动态的变换html的内容,从而实现ui与用户的交互...,由于避免了页面重新加载,spa可以提供较为流畅的用户体验 简单理解就是: 第一次进入页面时会请求一个html文件,刷新点击一下会切换到其他组件,此时路径也会相应的改变,但是并没有新的html文件的请求...,每次跳转不请求html文件,而是通过路由跳转来渲染组件 优点: 页面切换快,良好的交互体检,因为每次切换页面时,不需要重新加载整个页面,不需要做html文件的请求,这样就节约了很多http发送时延,获取数据也是通过...本质就是一个服务器向另一个服务器发请求,解析请求内容,但是搜索引擎是不会去执行请求到的js的,也就是说搜索引擎的基础爬虫的原理就是抓取url,然后获取html源代码并解析,如果一个单页应用,html在服务器还没有渲染部分数据,在浏览器渲染出数据

3.2K30

一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序

它还监视项目源中的每个更改并重新编译所有更改,之后它会要求浏览器重新加载打开的页面。因此,通过使用Angular CLI,我们已经在开发环境中工作,无需编写配置或实际执行任何操作。...每次我们改变我们的代码时,Angular CLI都会重新编译,如果需要的话重新注入,并要求我们的浏览器在页面打开时重新加载页面。...Angular做得非常快,所以在大多数情况下,当你将你的窗口从IDE切换到浏览器时,它已经为你重新加载了。...但在基本层面上,请考虑如下这些方法:在创建组件之后立即调用构造函数,在传递给它的数据准备好并填充之前很久调用该构造函数,而ngOnInit仅在第一个更改周期数据,因此您可以访问组件输入。...例如,如果我们想要将关于组件加载为默认组件,并且只在用户通过单击卡片链接隐式请求加载附加组件,该怎么办。为此,我们可以使用延迟加载模块。

42.5K10

2021Vue.js面试题汇总及答案【全网最全 建议收藏】「建议收藏」

6.v-hide 隐藏内容(同angular中的ng-hide) 7.v-if 显示与隐藏 (dom元素的删除添加 同angular中的ng-if 默认值为false) 8.v-else-if...keep-alive缓存组件 6.在更多的情况下,使用v-if替代v-show 7.key保证唯一 8.使用路由懒加载、异步组件 9.防抖、节流 10.第三方模块按需导入 11.长列表滚动到可视区域动态加载...1.44.SPA 单页面的理解,它的优缺点分别是什么 SPA( single-page application )仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS 一旦页面加载完成...,SPA 不会因为用户的操作而进行页面重新加载或跳转 取而代之的是利用路由机制实现 HTML 内容的变换, UI 与用户的交互,避免页面重新加载 优点: 1、用户体验好、快,内容的改变不需要重新加载整个页面...(动态加载路由) 把不同路由对应的组件分割成不同的代码块,然后当路由被访问时加载对应的组件即为路由的懒加载,可以加快项目的加载速度,提高效率 const router = new VueRouter(

8.6K30

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

; } } 这里模拟判断用户有没有修改原始的数据,当用户修改了数据并移动到别的页面时,触发路由守卫,提示用户是否保存再离开当前页面 ?...因此这里可以使用惰性加载的方式在请求具体的模块时加载对应的组件 惰性加载只针对于特性模块(NgModule),因此为了使用惰性加载这个功能点,我们需要将系统按照功能划分,拆分出一个个独立的模块 首先通过...当问题解决,就可以针对 crisis 模块设置惰性加载 在配置惰性路由时,我们需要以一种类似于子路由的方式进行配置,通过路由的 loadChildren 属性来加载对应的模块,而不是具体的组件,修改的...CrisisModule,然后把 CrisisModule 添加到当前的路由配置中,而惰性加载重新配置工作只会发生一次,也就是在该路由首次被请求时执行,在后续请求时,该模块和路由都是立即可用的 4.3.2...为了杜绝这种授权未通过仍加载模块的问题发生,这里需要使用到 CanLoad 守卫 因为这里的判断逻辑与认证授权的逻辑相同,因此在 AuthGuard 中,继承 CanLoad 接口即可,修改的 AuthGuard

3.7K30

2-进军 angular1.x 表达式和指令

2-表达式和指令,数据绑定 angular1.x 学习目录 1-angular 学习导航和基础 2-表达式和指令,数据绑定 3-模型和作用域 scope 4-控制器和过滤器 一 表达式 ng-init...tips 每个页面只有一个 ng-app 指令,多的不起作用 1.ng-app是一个特殊的指令,一个HTML文档只出现一次,如出现多次也只有第一个起作用;ng-app可以出现在html文档的任何一个元素上...如果有多个 ng-app 可以手动加载 // 页面加载完成,再加载模块 angular.element(document).ready(function() { //手动加载myApp2 ng-app...angular.bootstrap(document.getElementById("myApp2"), ['myApp2']) }) 复制代码 二 指令 一些常用的指令 ng-app 指令初始化一个...}; }); //restrict 值可以是以下几种: 复制代码 总结一下 angular 自定义的几种写法 1、上面这种要清晰一下 // angular.module('MyApp',[]) //

2.4K20

浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

而在Webapp中,又要数单页面架构体验最好,更像原生app。简单来说,单页面App不需要频繁切换网页,可以局部刷新,整个加载流畅度会好很多。...这一篇,先说说第1种:requirejs+angular+angular-route 移动端单页面Web相对多页面来说,模块化管理显得非常重要,因为如果没有模块化,页面初始化时就把所有的js和所有模版都加载进来...如果没有使用requirejs,那么我们需要在路由配置前加载完全部controller。angular-route需要做的只是切换HTML模版,重新编译,绑定新的controller。 但是。...我们要按需加载,不可能页面加载就全部controller都load回来,这样得耗费多少流量。。。...这样的模块化似乎已经很好,跳转到某个模块的时候加载对应的html和controller js。 但是。 但是。。

3.3K20

小心 Angular 中的单例 Service

(https://github.com/angular/angular/blob/674c3def319e2c444823319ae43394d46f3973b7/packages/core/src/view...大体总结一下Angular中声明service的不同方式和应用场景。...使用@Component 这时service与组件本身生命周期保持一致,非单例,适合声明一些需要暂存数据的工具类或者仅在某个或某几个组件中需要缓存数据的状态管理类service 使用@NgModule的...但是有一个特例,懒加载模块中的service是会在模块加载重新创建一个实例的,懒加载模块中均会注入创建的service实例,因此懒加载模块与非懒加载模块间的service非单例。...使用forRoot 使用forRoot可以保证当前模块即使是懒加载模块,在加载时也不会重新创建一个新的service实例,因为懒加载模块在加载时,会临时创建一个从属于根injector的子injector

2K30

angular面试题及答案_angular面试

ngOninit:初始化指令或组件,在angular第一次显示展示组件的绑定属性调用,该方法只会调用一次 ngDocheck:检测 ngAfterContentInit:当把内容投影进组件之后调用,...在传统的web技术中,客户端请求一个web页面(HTML/JSP/asp),服务器返回资源(或HTML页面),客户端再次请求另一个页面,服务器用另一个资源响应。...问题就在于请求/响应中消耗了大量时间,或者是重新加载使用了大量时间。而在SPA技术中,即使URL不断变化,我们也只维护一个页面(index.HTML)。 13....页面渲染 AOT优势   1、渲染得更快   2、需要的异步请求更少   3、需要下载的Angular框架体积更小   4、提早检测模板错误   5、更安全 JIT优势   编译时间短,...Angular的懒加载 默认情况下,在初始化的时候所有路由都会加载,导致加载缓慢,启动速度慢,所以可以使用懒加载加载 : 通俗 的讲就是进入主模块之后,子模块不加载,等真正访问到子模块之后,再去加载

10.9K120
领券