Реагировать.Компонент против реакции.PureComponent



чиновник React docs указано, что "React.PureComponent ' s shouldComponentUpdate() только поверхностно сравнивает объекты", и советует против этого, если состояние"глубокое".



учитывая это, есть ли причина, по которой следует предпочесть React.PureComponent при создании компонентов React?



вопросы:




  • есть ли влияние на производительность при использовании React.Component что мы можем использовать React.PureComponent?

  • я думаю shouldComponentUpdate() of PureComponent выполняет только поверхностные сравнения. Если это так, не может ли указанный метод использоваться для более глубоких сравнений?

  • "кроме того, React.PureComponent ' s shouldComponentUpdate() пропускает обновления prop для всего поддерева компонента" - означает ли это, что изменения prop игнорируются?


вопрос возник от чтения в это средне-блог, если это помогает.

550   1  

1 ответ:

основная разница между React.PureComponent и React.Component и PureComponent тут неглубокое сравнение при изменении состояния. Это означает, что при сравнении скалярных значений он сравнивает их значения, но при сравнении объектов он сравнивает только ссылки. Это помогает повысить производительность приложения.

вы должны пойти на React.PureComponent когда вы можете удовлетворить любое из указанных ниже условий.

  • состояние / реквизит должен быть неизменяемым объектом
  • состояние / реквизит не должны иметь иерархию
  • вы должны позвонить forceUpdate при изменении данных

если вы используете React.PureComponent вы должны убедиться, что все дочерние компоненты также чисто.

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

Да, это увеличит производительность вашего приложения (из-за неглубокого сравнения)

Я предполагаю, что shouldComponentUpdate() Purecomponent выполняет только поверхностные сравнения . Если это так, то не может быть использован указанный метод для более глубоких сравнений?

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

"Более Того, Реагировать.Purecomponent's shouldComponentUpdate () пропускает prop обновления для всего поддерева компонента" - означает ли это, что prop изменения проигнорировали?

Да, изменения опоры будут проигнорированы, если он не смог найти разницу в мелком сравнении.

Comments

    Ничего не найдено.