Задать вопрос
Tavion
@Tavion
front-end developer

Как правильно контролировать состояния loader'а?

У меня есть компонент - лоадер, который закрывает страницу, в ожидании пока она загрузится. Она является компонентом

var PageLoader = React.createClass({
     render: function() {
        return (
            <div className='loader'>
                <div className="loader-body" />
                <div className="loader-section section-left" />
                <div className="loader-section section-right" />
            </div>
        );
    }
});

React.render(<PageLoader />, body);


Ну там ещё стили, сюда их писать не буду. Лоадер скрывается, когда .loader получает класс .loaded. Получает он этот класс на complete ajax запроса, просто через
$('.loader').addClass('loaded');

Правильно ли это, с точки зрения "React way"? Или подобные изменения стоит производить через контроль состояний компонента? Если да, то как лучше это сделать?
  • Вопрос задан
  • 210 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Laiff
@Laiff
Front-end developer
Указанная конструкция не верна в корне, React way может выглядеть примерно так:
var PageLoader = React.createClass({
     onAjaxComplete : function() {
         ths.setState({loaded: true});
     },
     render: function() {
        var classes = cx({
           loader: true,
           loaded: this.state.loaded,
        })
        return (
            <div className={classes}>
                <div className="loader-body" />
                <div className="loader-section section-left" />
                <div className="loader-section section-right" />
            </div>
        );
    }
});

React.render(<PageLoader />, body);


Однако для оганизации потока данных все таки рекомендую посмотреть в сторону Flux архиектуры, там состояние будет получаться из соответствующего хранилища. flummox reflux
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽