|
36 / 34 / 12
Регистрация: 04.06.2014
Сообщений: 220
|
|
React js - рендеринг тормозит06.03.2018, 18:17. Показов 7978. Ответов 9
Метки нет (Все метки)
У меня есть 2 компонента
Первый это таблица на основе fixed-data-table-2,(около 100 строк, будет больше) при клике на ячейку таблицы хочу показать модальное окно. В браузере вижу предупреждение **[Violation] 'click' handler took 204ms**, при том что я ещё даже не рендерил модалку просто изменил состояние в родительском компоненте. Я думаю что это связано с тем что таблица перерисовывается после смены состояния, но почему так долго? Разве react не должен делать diff и отрисовывать только то, что поменялось? Поправьте если не прав. Как можно избавиться от этого, может быть как-то по другому организовать взаимодействие компонентов? Спасибо
0
|
|
| 06.03.2018, 18:17 | |
|
Ответы с готовыми решениями:
9
Двойной рендеринг в React
"React/React-Native Developer" |
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||||
| 06.03.2018, 23:30 | ||||||
|
А код где?
Скорее всего перерисовывется вообще всё, потому что вы задаёте хэндлеры как
props прямо при рендере)
0
|
||||||
|
36 / 34 / 12
Регистрация: 04.06.2014
Сообщений: 220
|
||||||||||||
| 07.03.2018, 10:22 [ТС] | ||||||||||||
|
Родительский контейнер (страница)
А что плохого в записи
0
|
||||||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 07.03.2018, 10:52 | ||
|
Добавлено через 4 минуты Теперь покажите код <MyModal />.Потому что в вашем всё чистенько и достаточно оптимально, если меня не подводят мои глаза
1
|
||
|
36 / 34 / 12
Регистрация: 04.06.2014
Сообщений: 220
|
||||||
| 07.03.2018, 11:02 [ТС] | ||||||
|
В <MyModal /> Ничего нет, это пока пустой компонент, более того если закомментировать строку
Мне кажется что когда я меняю флаг modalRowEdit в состоянии PageExample, заново рендерится вся таблица и видимо в этом и причина, пакет fixed-data-table достаточно большой и рендерит много верстки
0
|
||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 07.03.2018, 11:33 | ||
|
Если хотите, чтобы она не обновлялась, просто вынесите её код в отдельный компонент, перед вызом его рендера будет проверка на идентичность properties.
1
|
||
|
36 / 34 / 12
Регистрация: 04.06.2014
Сообщений: 220
|
|
| 07.03.2018, 11:37 [ТС] | |
|
0
|
|
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||
| 07.03.2018, 11:53 | ||
|
Да нет, у вас и так норм, в принципе. Можете добавить отладочный вывод в render(...) { ... } FixedTable и проверить сами, запускается ли он после изменения состояния модального окна?
0
|
||
|
36 / 34 / 12
Регистрация: 04.06.2014
Сообщений: 220
|
|
| 07.03.2018, 12:05 [ТС] | |
|
Запускается!
Понимаю что нужно переносить модальное окно из PageExample куда-то в другое место, но не пойму куда? Есть идея сделать кастомный компонент для ячейки таблицы в него пробросить объект с данными и в нем же при клике рендерить модалку, не знаю насколько это правильный путь. Наверное redux решил бы все эти проблемы, но интересно как сделать всё на чистом реакте
0
|
|
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
|
| 20.03.2018, 09:58 | |
Сообщение было отмечено shaman92 как решение
Решение
shaman92, вынести всю таблицу в отдельный класс и описать для нее
shouldComponentUpdate метод.
1
|
|
| 20.03.2018, 09:58 | |
|
Помогаю со студенческими работами здесь
10
Рендеринг Firefox в centos 5.5 тормозит в youtube - звук нормально, но видео тормозит Тормозит браузер, тормозит система, заполняется место на диске 3d рендеринг на cpu ЦПУ + 3D + Рендеринг Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|