我希望系统时间在主布局的顶部,但这只在阴影DOM中改变。为了使它可见,我需要使用StateHaschanged()。我的问题是,主布局有整个网站在它,它重新渲染它吗?如果是,它将导致性能问题…
是否StateHasChanged()在主AppLayout改变整个主体?
是的,你造成了所谓的"渲染级联";在渲染树下面。任何具有Parameter
引用对象的子对象都将调用它的SetParmetersAsync
,即使它没有改变。因为你几乎肯定使用ComponentBase
,这将触发渲染。还有孙子孙女.......注意,ChildContent
是RenderFragment
,因此是一个引用对象。
解决这个问题的简单方法是将时间显示封装在组件中,然后将其放置在布局中。TimeDisplayComponent
现在是AppLayout
的孩子,不触发父渲染事件。"渲染Cascades"只能向下传播,不能向上传播。