Задать вопрос
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"? Или подобные изменения стоит производить через контроль состояний компонента? Если да, то как лучше это сделать?
  • Вопрос задан
  • 208 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 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 Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽