Мысленная экспериментальная обратная связь по предотвращению ненужных повторных визуализаций для реакции / редукции - PullRequest
1 голос
/ 11 апреля 2019

Итак, хотя виртуальный dom и diffing делают React быстрым по сравнению с непосредственным манипулированием dom, я читал, что если вы не будете модульно модифицировать ваши компоненты, это вызовет ненужные рендеры, потому что он будет рендерить все родительские компоненты, которые он получил свой реквизит, даже если их интерфейс не изменился. Это один из самых больших недостатков производительности React.

С другой стороны, если я спроектирую свое приложение так, чтобы не было дочерних компонентов, и каждый из них поддерживает свое собственное состояние, это может обойти эту проблему производительности, но это будет почти невозможно поддерживать.

Что, если я создам какой-то компонент более высокого порядка (например, соединение редукса), который обернет весь мой основной компонент (который содержит все мои компоненты) и рекурсивно создаст кусочек состояния для каждого отдельного компонента, который содержит только его подпорки потребности? Таким образом, он может сохранить принцип сингулярности типа редукса и возможность сопровождения кода, избегая ненужных повторных рендеров.

Я думаю, что его, возможно, придется использовать в сочетании с приставкой, чтобы где-то иметь доступ ко всем реквизитам одновременно, но, возможно, его можно использовать и без него. Этот способ разделения кода и отложенной загрузки компонентов будет прост в реализации (возможно, установление максимального количества одновременных запросов к серверу для уменьшения накладных расходов). Я бы запомнил реквизит, чтобы уменьшить количество запросов.

Я думал об этом как о потенциальной идее для побочного проекта, но я не знаю, выполнимо ли это или оно решает ненужную проблему рендеринга. Я думаю об этом как о какой-то библиотеке npm, которую можно использовать поверх приставок.

...