在深入研究代码后,我看到控件上的 invalidate()
会增加一个计数器,这似乎将控件标记为无效。
这似乎导致重新渲染。
因此,如果您有一个想要重新渲染的控件, 使用 invalidate()
或 rerender()
是更好的做法吗?
重新渲染实际上是如何触发的? (当然,除了显式调用它)
最佳答案
两者都标记为“ protected ”,这意味着您不应调用它们中的任何一个,除非您真的深入开发自定义控件。
当(例如)更改属性时,控件会失效。在这种情况下,您通常希望重新渲染控件,这就是默认情况下 setter 调用 invalidate 的原因。
当你在你的自定义控件中覆盖你的 invalidate 方法时,你可以分析失效的来源,然后决定你是否真的想要重新渲染等。参见例如统一的.Shell,它根据来源决定对失效做什么:
https://sapui5.netweaver.ondemand.com/sdk/resources/sap/ui/unified/Shell-dbg.js 线 1539ff
再次: protected 意味着不应从外部调用它(并且它不应该是必要的,除了调试)。
关于javascript - SAPUI5:无效和重新渲染之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27867406/