首页 > 解决方案 > Ember:在ember js中重新渲染是什么意思?

问题描述

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

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

提前致谢。

标签: javascriptember.jsember-cli

解决方案


didRender钩子不关于triggering a re-render。它被描述为您共享以下链接的指南:

您可以利用此钩子在组件更新后对组件的 DOM 执行后处理。

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

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

当然,如果你做了一些影响组件值的事情,它可能会触发重新渲染。但这是你通常不应该做的事情。


让我们再澄清一下re-render

随着组件被渲染、重新渲染并最终被移除,Ember 提供了生命周期钩子,允许您在组件生命周期的特定时间运行代码。

参考

指南说大约 3 个主要阶段(参考):

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

这里Re-render的意思是,如果组件的参数或属性发生变化,它就会开始重新渲染自己。例如,考虑一个person-card显示人属性的组件。比如{{person-card person=model.person}}。每当 person 参数发生变化时,组件都会重新渲染。


推荐阅读