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 文件。
所以不,没有垃圾收集器为您清理任何东西。
在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 文件。
所以不,没有垃圾收集器为您清理任何东西。