Для чего нужен «реагировать-горячий-загрузчик/бабель»?

Я настроил react-hot-reload на основе начало работы в npm. Первым шагом было добавление

// .babelrc
{
  "plugins": ["react-hot-loader/babel"]
}

У меня есть однокомпонентное приложение с состоянием счетчика и кнопкой, которая увеличивает счетчик состояний. При тестировании кажется, что он работает и сохраняет свое состояние с/без этого плагина в моем .babelrc, когда я добавляю/удаляю случайные компоненты в моем методе render().

Итак, мой вопрос: для чего предназначена эта часть головоломки? почему это требуется?

Приложение, которое я использую для проверки,

import { hot } from 'react-hot-loader/root';
import React from 'react';

class App extends React.Component {
    constructor(props) {
      super(props);
      this.state = {value:0};
    }

    handleButtonClick(event)
    {
        console.log("click");
        this.setState( state => ({
            value:state.value + 44

        }));
    }

    render() {
      return (
        <div>
            <div>
            <a>asd</a>
            <p>asssd</p>
        <input></input>
          <button onClick={this.handleButtonClick.bind(this)}></button>
            2<div>{this.state.value}</div>
            </div>
        </div>
      );
    }
  }

export default hot(App);

person ronald_s56    schedule 21.02.2020    source источник
comment
Можно поконкретнее, что тебе не понятно? Ссылка, которую вы разместили, говорит вам, для чего она, как она работает и как Fast Loader устарела.   -  person Sterling Archer    schedule 21.02.2020
comment
В частности, компонент Babel. Я понимаю, для чего нужна react-hot-reload. Но, как упоминалось выше, если я добавлю или уберу этот бит в .babelrc, я не вижу разницы. Я все еще использую импорт в App.js и использую горячий экспорт по умолчанию (приложение), просто исключая плагин .babelrc, и он все еще работает. URL-адрес, который мне понравился, не объясняет, для чего конкретно нужен бит Babel.   -  person ronald_s56    schedule 21.02.2020


Ответы (1)


Плагин react-hot-reload/babel предназначен для быстрой разработки. Он позволяет обновлять скрипты, которые были недавно изменены, без обновления приложения/страницы. Это никоим образом не требуется, но позволяет разработчикам быстро повторять и просматривать изменения своего кода без потери состояния в памяти.

person Bodman    schedule 22.02.2020
comment
Верно, но тестируя без react-hot-reload/babel, я все еще не теряю свое состояние с приведенным выше примером приложения. Нажав кнопку несколько раз, а затем изменив что-то в файле .jsx, значение счетчика останется прежним, а изменения появятся. Кажется, что это произошло благодаря импорту в файл jsx и обертыванию приложения с помощью hot() - так что до сих пор не уверен, что на самом деле делает этот бит Babel. - person ronald_s56; 22.02.2020
comment
Прикомандирован. Я удалил react-hot-loader/babel из .babelrc, и все по-прежнему перезагружается и сохраняет состояние. То же самое с webpack.HotModuleReplacementPlugin в конфигурации веб-пакета - похоже, это не нужно. - person Matt; 29.09.2020