День добрый! Все наше приложение написано на Iron:Router + Blaze Templates. После выхода Flow Router хотим перейти на него. Однако, он отлично работает с React, который нам тоже было бы интересно внедрить.
Итак, сабж: как перевести проект с blaze на react "по частям"? Интересуют именно грамотные подходы. Так-то ясно, что можно заморозить проект и переписать его используя React.
UPDATE:
На данный момент написал такую обертку:
ReactToBlaze = function(templateName, component) {
if(Meteor.isServer) return; // Blaze не пашет на сервере
var templateClass = new Template(templateName, () => new HTML.DIV);
Template[templateName] = templateClass;
templateClass.onRendered(function() {
this.autorun(() => {
var data = Template.currentData() || {};
var c = React.createElement(component, data);
c._meteorTemplate = this;
this._reactComponent = ReactDOM.render(c, this.firstNode);
});
});
templateClass.onDestroyed(function() {
var template = this;
var res = ReactDOM.unmountComponentAtNode(ReactDOM.findDOMNode(template._reactComponent).parentElement);
if(!res) {
console.error('Не удалось размонтировать элемент');
}
});
return templateClass;
};
Передаю туда название шаблона для Blaze и сам компонент. Получаю готовый шаблон.