除了被調用的init之外,我不確定Ractive組件的生命週期是什麼。 例如,何時可以直接訪問DOM? 我試圖使用流行的sparklines jQuery插件,但我從來沒有得到它的工作。 我使用了一個指令,而 - 瞧 - 可愛的迷你曲線。Ractive組件的生命週期
有關組件在Ractive中接收什麼樣的事件和回調的任何文檔?
除了被調用的init之外,我不確定Ractive組件的生命週期是什麼。 例如,何時可以直接訪問DOM? 我試圖使用流行的sparklines jQuery插件,但我從來沒有得到它的工作。 我使用了一個指令,而 - 瞧 - 可愛的迷你曲線。Ractive組件的生命週期
有關組件在Ractive中接收什麼樣的事件和回調的任何文檔?
現在圖書館已經相當成熟了。在模板/組件中使用Ractive.on('render', ...);
或onrender
來訪問DOM。參見:http://docs.ractivejs.org/latest/lifecycle-events。
從版本0.6
開始就是這樣。
簡而言之,在最近的穩定版本中,它是未定義的 - 在某些情況下,組件的init
方法在組件被附加到DOM之前被調用。這是一個錯誤。
它不再在下一版的情況下,0.4.0:http://cdn.ractivejs.org/edge/Ractive.min.js
截至0.4.0,它看起來像這樣:
Ractive.components.sparkline = Ractive.extend({
beforeInit: function (options) {
// called before any setup happens, in case you
// need to transform `options` in any way
},
init: function (options) {
// called immediately after the initial render,
// when the component is in the DOM
},
complete: function() {
// called when any initial transitions have
// completed
}
});
一個teardown
事件將組件之前被解僱從DOM刪除 - 在您的init
方法,例如,你可以添加一些代碼,這樣做是必要的清理(如果有的話):
init: function() {
this.on('teardown', function() {
// cleanup
}
},
...
如果有其他事件/鉤子,您覺得缺少任何反饋,歡迎您提供任何反饋。
這是個好消息。謝謝! –
0.6中有一個新的生命週期http://docs.ractivejs.org/0.6/lifecycle-events – Codler