mannaro
@mannaro
Умею профессионально гуглить

Как перейти с blaze на react?

День добрый! Все наше приложение написано на 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 и сам компонент. Получаю готовый шаблон.
  • Вопрос задан
  • 418 просмотров
Решения вопроса 1
@vsuhachev
Могу высказать общие соображения - включить в проект react и при наличии старой технологии понемногу переписывать приложение по частям на новую, причем сразу использовать react так, чтобы не нужно было потом что-то переделывать. Некоторое время react и blaze будут работать параллельно, потом останется один react.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mattedev
@mattedev
web developer
Замораживать не надо. Как вариант, Переписываете проект, после ставите обновление.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы