2014-02-18 4 views
2

Помимо вызова вызова init, я не уверен, каков жизненный цикл компонента Ractive. Когда безопасно обращаться к DOM напрямую, например? Я попытался использовать популярный плагин jQuery для плагинов, но у меня его никогда не было. Вместо этого я использовал директиву и - вуаля - прекрасные искры.Жизненный цикл активных компонентов

Любая документация о том, какие события и обратные вызовы получает компонент в Ractive?

ответ

2

Библиотека довольно зрелая сейчас. Используйте Ractive.on('render', ...); или onrender в шаблоне/компоненте для доступа к DOM. См.: http://docs.ractivejs.org/latest/lifecycle-events.

Это правда с версии 0.6 и дальше.

4

Короткий ответ заключается в том, что в последнем стабильном выпуске он не определен - в некоторых случаях метод компонента 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

это отличная новость. благодаря! –

+1

Существует новый жизненный цикл в 0.6 http://docs.ractivejs.org/0.6/lifecycle-events – Codler

Смежные вопросы