Почему анти-шаблон позволяет компоненту реакции редактировать свои собственные реквизиты?

Я искал ответ на другую проблему и нашел этот ответ (ссылка). Мне просто любопытно, почему так изменение собственного реквизита является анти-шаблоном, и почему изменение собственного состояния не является анти-шаблоном?


person Mike W    schedule 17.07.2016    source источник
comment
См.: stackoverflow. com/questions/26089532/ Это парадигма, которую использует фреймворк.   -  person Evan Trimboli    schedule 17.07.2016


Ответы (1)


В React реквизиты — это объект данных, который вряд ли изменится в жизненном цикле компонента, а состояние — это данные, которые >вероятно изменится в жизненном цикле компонента.

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

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

точная функция слабо проверяет, совпадают ли состояние/реквизиты, затем https://github.com/facebook/react/blob/master/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js#L881-L883

Я бы порекомендовал прочитать о том, как реагировать «согласовывает» данные на изменения и вносить обновления в дом. https://facebook.github.io/react/docs/reconciliation.html

person Blair Anderson    schedule 17.07.2016
comment
Чтобы добавить еще один момент: React рассматривает реквизиты как неизменяемые, поэтому он может выполнять определенные поверхностные оптимизации проверки во время повторного рендеринга и отключаться, если нет работы, которую нужно выполнить. - person probablyup; 19.07.2016
comment
@yaycmyk фактически проверяет оба github.com/facebook/react/blob/master/src/renderers/shared/ - person Blair Anderson; 19.07.2016