可以尝试使用 router.navigateByUrl 方法代替 router.navigate,或者在目标组件中使用 ngOnChanges 监听参数变化来避免重复渲染。
示例代码:
使用 router.navigateByUrl 方法:
import { Router } from '@angular/router';
constructor(private router: Router) {}
redirectToTargetComponent() {
this.router.navigateByUrl('/target');
}
在目标组件中使用 ngOnChanges 监听参数变化:
import { Component, OnChanges, Input } from '@angular/core';
@Component({
selector: 'app-target',
template: `{{ data }}`
})
export class TargetComponent implements OnChanges {
@Input() data: any;
ngOnChanges() {
console.log('Data changed');
}
}