UI5:getRouter().getTargets().display() 会破坏 original/source 视图吗?

UI5: Does getRouter().getTargets().display() destroy the original/source view?

Step 5: Display a Target Without Changing the Hash,我们可以看到一种技术,它允许在不更改散列的情况下显示视图,换句话说,它显示所需的视图而不导航到该视图(如果我理解正确的话) .

很好,但是

const oRouter = UIComponent.getRouterFor(oView);

oRouter.getTargets().display("%DESIRED_VIEW%");

// alternatively:
// this.getRouter().getTargets().display("%DESIRED_VIEW%");

意思是之前的观点,哪个rose%DESIRED_VIEW%会被垃圾收集器妥善销毁?换句话说,*.getTargets().display() 技术是内存泄漏安全的吗?原始(源)视图发生了什么?

UI5 中的视图一旦显示就永远不会销毁(控制器的 onInit 也只调用一次)。

如果您查看 sample app for step 5 of the routing tutorial,您会看到一个小应用程序,单击按钮会打开第二个视图。

UI5 diagnostics(Ctrl+Shift+左Alt+ S),可以看到两个视图的控件树:

此外,当您部署 UI5 应用程序时,该工具将生成一个 Component-preload.js 文件,其中包含一个文件中的所有视图和 JS 文件。

所以不,没有垃圾收集器为您清理任何东西。