【问题标题】:Component Re-initialized When Navigated Through routerLink通过 routerLink 导航时组件重新初始化
【发布时间】:2019-06-23 18:55:04
【问题描述】:

我正在使用 routerLink 从主组件导航到结果组件,但每次我导航回组件时组件都会重新初始化。

如何防止组件重新初始化?

下面是代码

AppComponent HTML

<div class="collapse navbar-collapse">
  <ul class="nav navbar-nav">
    <li routerLinkActive="active" class="nav-item">
      <a class="nav-link" routerLink="/home">Home </a>
    </li>
    <li routerLinkActive="active"  class="nav-item">
      <a class="nav-link" routerLink="/results">Results</a>
    </li>
  </ul>
</div>

应用路由模块

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ResultComponent } from './pages/result/result.component';
import { HomeComponent } from './pages/home/home.component';

const routes: Routes = [
  {path: '', redirectTo: '/home', pathMatch: 'full'},
  {path:"results", component: ResultComponent},
  {path:"home", component: HomeComponent}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {

}

结果组件

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-result',
  templateUrl: './result.component.html',
  styleUrls: ['./result.component.css']
})
export class ResultComponent implements OnInit {

  constructor() { }

  ngOnInit() {
    console.log("created");
  }

}

当我从 Home Component 导航回 Result Component 时,它总是打印出“created”。

这是预期的行为吗?

我的实际代码添加了更多内容。

【问题讨论】:

  • 当导航组件被销毁并且导航回来后它是新创建的。如果您对持久化组件数据感兴趣,也许这会对您有所帮助 - angular.io/api/router/RouteReuseStrategy
  • 非常感谢您的链接!

标签: html angular typescript angular6


【解决方案1】:

这正是 Angular 的工作原理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多