每次导航到不同的组件类型时,路由器都会实例化一个新组件。这会产生严重的后果。此外,这是一个非常不同的范例,不仅来自以前版本的路由器,还有任何路由框架。
这是一个例子:用户可能正在填写tab1上的长格式,他需要在tab2中查找或验证其他一些细节,当他回到tab1时,一切都被消灭了(如组件被重新实例化)。这意味着每次用户在UI的一部分上进行更改时,应该保留UI的状态(预期他意外导航到另一个组件,该组件在同一UI上共存。
在复杂的用户界面上,比如图形和多个打开的树形控件(反映位于某个东西中间的用户),人们不仅要保留内容,还要不必要地保留各种小部件或图形的每个位置的状态在组件上。如果路由器可以选择重用树上的组件,(当从当前组件导航到不同类型的组件时),则不必保留UI状态。
每次破坏组件的想法(有人导航到不同类型的组件)从性能的角度来看也听起来不对。来自重型后端呼叫的模型必须被缓存或重复呼叫。
您对此路由模型有什么经验?
这种设计使开发人员做了很多额外的工作(保存和重新创建正在进行的工作 - 我们过去从未关心过),并对应用程序造成性能损失。你如何克服这些挑战?
UI-router另一个第三方路由库(自angular1天以来一直存在)并不通过重新创建组件来强制/强制开发人员。你是否采用它作为替代方案?任何关于UI-Router的建议是否比Router 3更好?