javascript - Ember组件生命周期钩子(Hook)方法——是否强制调用super?

标签 javascript ember.js

在我的项目中,某些组件生命周期 Hook 方法没有 this._super(...arguments) 例如 didReceiveAttrsdidUpdateAttrsdidRenderdidInsertElementwillDestroyElement。 但我没有遇到任何问题。我应该更改为包含还是不包含?

我知道如果我们为 Ember.Component 这样的框架类重写 init,请务必调用 this._super(...arguments) 在我们的 init 声明中!如果我们不这样做,Ember 可能没有机会进行重要的设置工作,并且我们会在您的应用程序中看到奇怪的行为。 (ref)

最佳答案

对于每个生命周期钩子(Hook),始终调用this._super并不是强制的。但是,有时您需要它,有时则不需要。由于在实际需要时缺少 _super 调用而导致的错误通常会导致难以发现或调试的错误。因此,建议始终调用它,以确保安全。如果你调用它并且不需要它,它不会做任何事情,所以你不会因为这样做而损失任何东西。

我猜这只是多了一行代码,但它确实没有什么缺点,除了需要 5 秒的时间来输入它。

相关对话请参阅: Deprecate the usage of Ember.on for Component's lifecycle events.

关于javascript - Ember组件生命周期钩子(Hook)方法——是否强制调用super?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41011165/

相关文章:

javascript - Highcharts 动态更新 x 轴类别

javascript - 变量值发生变化(根据alert())但被插件代码忽略?

javascript - 如何通过Jquery滑动Slider的元素

javascript - Chartjs,创建图表后如何编辑数据选项?

ember.js - ember s - 端口 4200 已在使用中

javascript - 我需要帮助,使用 JQuery 在字段留空时提醒用户

ember.js - Ember-cli ProxyPass

ember.js - 在 Github Pages 上的 Ember.js 中获取没有哈希的 url

javascript - 从数组中返回第一个元素作为 Ember Controller 子类的计算属性

javascript - EmberJS,如何为不同的 "config variables"管理不同的 "environments"