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

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

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект