angular - 角度 4 中的路由器在导航期间是否仅保持一种状态?
问题描述
我有两个状态 A 和 BI 从状态 A 导航到状态 B。当我从状态 B 导航回状态 A 时,状态 A 再次以角度加载。从状态 A 导航到状态 B 时状态 A 是否被破坏?如果状态A被破坏,那么如何防止状态A在后退导航中再次加载
解决方案
是的,Angular 一次只拥有 1 个状态。有多种保存状态的方法,拥有一个服务,它使用 getter 和 setter 保存私有变量,将其保存在 localStorage/sessionStorage、查询字符串等中……每一种都有自己的优点和缺点,我会研究更多关于它在路由器部分的 angular.io 上。
组件可以“实现”的类很少,例如 OnInit 和 OnDestroy,那么您将在代码中拥有这些函数,以便在每次加载/离开时加载/保存状态。例子:
export class ChatComponent implements OnInit, OnDestroy {
constructor(){}
onDestroy(){
//save logic goes here
}
onInit() {
//load logic goes here
}
}
当然,您也可以在构造函数中加载状态,但我发现 onInit 性能更好。但请随时纠正我。
推荐阅读
- c# - Entity Framework Core - 模型更改时早期的数据迁移中断
- javascript - 尝试将插入符号设置在 contenteditable div 的末尾焦点上,然后按 Enter 换行
- hyperledger-fabric - 网络中是否可以有一个对等组织?
- r - Rcpp 错误:静态断言失败:无法将类型转换为 SEXP,为什么?
- math - 创建与三角形角平行的点
- nginx-config - 帐户在 Spinnaker 甲板上不可见
- r - 将多个网格表添加到 pdf
- mysql - 同一张表上的 SQL 内连接
- clojurescript - 使用 Clojurescript 创建弹出窗口
- regex - 如何匹配出现在另一个单词之前的任何时候的单词,而不是在该单词之后?