afterRender vs didInsertElement
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了afterRender vs didInsertElement相关的知识,希望对你有一定的参考价值。
什么是ember.js中以下两件事之间的区别?
当一个人优先于另一个人时,是否有经验法则?
1)afterRender
运行循环
2)didInsertElement
钩
afterRender为您提供了一种方法,可以在完成所有先前计划的渲染任务后安排执行某些逻辑。取自Ember Run Loop docs。
$('a').click(() => {
// Do something..
Ember.run.schedule('afterRender', () => {
// Do yet more things
});
});
didInsertElement是一个只调用一次的组件钩子(与didReceiveAttrs不同),并为开发人员提供了添加其他逻辑的选项。 由于它仅在首次呈现组件元素时触发一次,因此它是附加事件侦听器的好地方。更多信息在Ember Component Lifecycle docs。
您可以从Ember.run.schedule部分here获取更多信息。您可以看到如何将hook和afterRender一起使用以避免UI问题。
我总是喜欢didInsertElment
钩子,如果我需要处理渲染的DOM元素。每当你想到使用afterRender
run loop hack来解决你的问题时,那就是引入组件的最佳时机。
路径中没有钩子,要知道所有UI元素都在DOM中呈现,就像组件有didInsertElement
和didRender
钩子一样。
大多数afterRender
运行循环黑客将在路由文件中使用,在所有UI渲染完成后运行一些逻辑。
您还可以在Ember Map的路线级视频中使用组件挂钩。 https://embermap.com/video/component-hooks-at-the-route-level
以上是关于afterRender vs didInsertElement的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ember 控制器中运行操作 afterRender
如何在 afterrender 事件 Ext JS 中获取标题标签元素?
extjs 组合框 afterrender() 一起调用导致异步 ajax 调用