javascript - Ember:在ember js中重新渲染是什么意思?
问题描述
我正在使用ember.js(version 3.7)
,现在我很困惑。现在,我正在为我们的应用程序优化代码部分。首先,我将尝试查找组件中重新渲染的内容是什么?进入这个话题后,我对此感到困惑。
在 ember 中,他们使用didRender()方法来触发重新渲染事物(jQuery DOM 操作、Asnyc 函数加载等...)。现在我对在 ember 中重新渲染没有太多想法。有人可以向我详细解释重新渲染吗?并且,如果您有任何关于在 ember 中重新渲染的资源,请分享。
提前致谢。
解决方案
didRender
钩子不关于triggering a re-render
。它被描述为您共享以下链接的指南:
您可以利用此钩子在组件更新后对组件的 DOM 执行后处理。
您可能想要对尺寸或焦点或滚动做一些事情。为此,您需要等到渲染完成。因为否则您无法获得组件的确切值和位置。对于这些情况,您可以使用didRender
钩子。
例如: - 如果你想聚焦视图的某些部分 - 如果你想滚动视图的某些部分 - 如果你想调整某些组件的大小 - 如果你想调用试图访问 DOM 元素的第三方库. 等你可以使用这个钩子。
当然,如果你做了一些影响组件值的事情,它可能会触发重新渲染。但这是你通常不应该做的事情。
让我们再澄清一下re-render
:
随着组件被渲染、重新渲染并最终被移除,Ember 提供了生命周期钩子,允许您在组件生命周期的特定时间运行代码。
(参考)
指南说大约 3 个主要阶段(参考):
- 初始渲染
- 重新渲染
- 组件销毁
这里Re-render
的意思是,如果组件的参数或属性发生变化,它就会开始重新渲染自己。例如,考虑一个person-card
显示人属性的组件。比如{{person-card person=model.person}}
。每当 person 参数发生变化时,组件都会重新渲染。
推荐阅读
- amazon-web-services - 有没有办法使用无服务器部署多个共享相同 lambdas 的 api 网关
- javascript - Tee 图表滚动条实现
- php - Lumen 5.6 - php artisan db:seed 出现错误“类 DatabaseSeeder 不存在”
- visual-studio-code - 如何实现 TypeScript 中定义的接口?
- sonarqube - 如何回滚到 sonarqube 中的旧分析
- spring-boot - 在微服务中获取连接超时错误
- c# - 应用暂停时在 Unity 中序列化的内容
- javascript - 从主方法调用并包括 http-request 授权的子方法的单元测试
- excel - INDEX 列参考与范围
- python-3.x - 从 Python 3 for 循环打印时,是否可以插入除最后一个分隔符之外的所有分隔符?