Я искал ответ на другую проблему и нашел этот ответ (ссылка). Мне просто любопытно, почему так изменение собственного реквизита является анти-шаблоном, и почему изменение собственного состояния не является анти-шаблоном?
Почему анти-шаблон позволяет компоненту реакции редактировать свои собственные реквизиты?
Ответы (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