angular - 路由更改时如何用角度重新加载整个组件?
问题描述
我想在路由更改时重新加载或重新渲染侧边栏组件我有以下代码:
constructor(
private auth: AuthService,
private router: Router,
private changeDetector: ChangeDetectorRef
) {
this.auth.currentUser.subscribe(x => this.userData = x);
this.router.events.subscribe((event) => {
if (event instanceof NavigationStart) {
this.changeDetector.detectChanges();
console.log('enter');
}
});
}
此输入显示日志“输入”但不重新加载组件。任何人都可以帮忙举个例子吗?
解决方案
通常组件路由不会重新加载,因为 Angular 作为 SPA(单页应用程序)工作 - 但components
如果这是唯一的情况,您可以加载以减小浏览器大小
在侧边栏链接上使用href
和您的路径名称- 这将使您的组件在您每次单击时重新加载 - 每次它都会从服务器加载所有内容 - 如果您使用加载此过程不是正确的方式 - 这只会有帮助您可以减少每次点击时的浏览器 RAM 使用量,并且不保留任何以前的数据,但路由将照常工作routerLink
anchor
js
lazy
你href
的问题也是这样——但要确保你真的想加载你的组件
希望它有所帮助 - 快乐编码:)
推荐阅读
- java - 使用 CLion 调试 OpenJDK14:无法加载 CMake 项目
- mongodb - FIWARE Cygnus 对空间使用有任何问题吗?
- python - 主管不在容器内运行
- macos - gcc-10下架构x86_64的重复符号
- azure-devops - 我如何运行依赖于可以有条件地不运行的东西的作业?
- java - org.eclipse.persistence.exceptions.ConversionException 使用 JPA 将 Oracle TIMESTAMPTZ 转换为 java.util.Date 时
- reactjs - 根据其他值更改 Formik 选择器选项 - React Native
- regex - RegEx匹配Dialogflow中的特殊字符
- reactjs - React handlechange 只是更新每个字母而输入没有意识到它
- matlab - 如何从MATLAB中大型数据集的前几个数据中减去?