Задать вопрос
@webe
frontend

Почему так сильно лагает render на простой задаче?

Решил сделать проект для оттачинвания навыков , побольше чем TODO.
1) У меня есть 100 товаров в БД
2) Есть контейнер для товаров , некий index layout, я называл его , т.е. почти корневой элемент проекта в нем лежит шапка и все остальное, возможно это серьезный косяк архитектуры, в нем я делаю CONNECT к redux который вызывает API, так же у меня есть , тоже является layout'ом
3) Есть react class component
4) Я получаю эти 100 товаров в контейнере и рендерю через map 100 раз.

Долго что-то очень , это с учетом я делаю все это на своем компе.
Реакт мне дает сообщение :
[Violation] 'click' handler took 278ms
[Violation] 'readystatechange' handler took 250ms

Вопросы:
1) Как можно увеличить скорость рендринга? может есть какой-то подход для постепенного рендринга?
Все же я думаю что я делаю что-то не так, что-то очнеь печально что 100 товаров так долго рендерится из коробки :(
Сейчас попробую сделать react function components на , но вряд в этом проблема быстрей станет.
2) Это очень серьезный косяк если я делаю. Connect в ? для того что бы отрендерить товары внутрь
3) У меня каждая категория грузит группу товаров, но как их закешировать? по сути я могу просто создавать новую ветку в стор, куда буду складывтаь все товары и этого будет достаточно? т.е. если ветка есть то тянет от туда, если ветки нет, товызываем API
class Main extends Component {
  state = {};

  componentDidMount() {
    this.props.getProductsAll();
  }

  render() {
    return (
      <React.Fragment>
        <Header />
        <Wrapper>
          <SideBar />
          <Content>
            {this.props.products.map(el => (
              <Product key={el.id} data={el} />
            ))}
          </Content>
        </Wrapper>

        <Footer>Footer</Footer>
      </React.Fragment>
    );
  }
}

function mapStateToProps(state) {
  return { products: state.products };

export default connect(mapStateToProps, { getProductsAll })(Main);
  • Вопрос задан
  • 440 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
  • Skillfactory
    Специализация Frontend-разработчик
    9 месяцев
    Далее
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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