Ember:在ember js中重新渲染是什么意思?

时间:2019-05-15 06:06:00

标签: javascript ember.js ember-cli

我正在使用ember.js(version 3.7),现在我感到困惑。现在,我正在为我们的应用程序优化代码部分。首先,我将尝试查找在组件中重新渲染的东西是什么?进入这个话题后,我感到困惑。

在余烬中,他们使用了didRender()方法来触发事物的重新渲染(jQuery DOM操作,Asnyc函数加载等...)。现在,我对在余烬中重新渲染还不了解。有人可以向我解释重新渲染的细节吗?并且,如果您有关于在余烬中重新渲染的任何资源,请分享。

谢谢。

1 个答案:

答案 0 :(得分:1)

didRender钩子与triggering a re-render无关。共享了以下链接的指南描述为该指南:

  

更新后,您可以利用此挂钩对组件的DOM进行后处理。

您可能要对尺寸或焦点或滚动做些事情。为此,您需要等到渲染完成。因为否则您将无法获得组件的确切值和位置。在这种情况下,您可以使用didRender挂钩。

例如: -如果您想聚焦视图的某些部分 -如果您要滚动视图的某些部分 -如果您要调整某些组件的大小 -如果您要调用试图访问DOM元素的第三方库。 等等。您可以使用此挂钩。

当然,如果您做的事情会影响组件的值,它会触发重新渲染。但这是您通常不应该执行的操作。


让我们进一步澄清re-render

  

在渲染,重新渲染并最终删除组件时,Ember提供了生命周期挂钩,使您可以在组件生命周期中的特定时间运行代码。

Ref

指南说了大约三个主要阶段(Ref):

  • 初始渲染
  • 重新渲染
  • 销毁组件

此处的Re-render表示,如果组件的参数或属性发生更改,它将开始重新呈现自身。例如,考虑一个person-card组件,它显示一个人的属性。如{{person-card person=model.person}}。每当person参数更改时,组件都会重新渲染。