В реакциях, реквизит проходит по значению или проходит по ссылке?

Насколько я могу судить, если я передаю родительское состояние компонента до ребенка, то этот ребенок получит состояние live родителя.

Таким образом, изменение, внесенное в состояние родителя, сразу же доступно в дочернем элементе через опору, в которой он появился.

Правильно ли это?

Ответ 1

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

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

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

Однако убедитесь, что вы уважаете внедренную инфраструктуру и открытый API, который дает вам React.

Ответ 2

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

Взгляните на это - https://facebook.github.io/react/docs/multiple-components.html. Это поможет вам разобраться, как работает эта концепция. Надеюсь, это поможет!

Ответ 3

Когда состояние компонента изменяется, компонент повторно обрабатывается командой React. При этом его дочерние компоненты также повторно отображаются, что также приводит к изменениям в них.

Ответ 4

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

Вы можете посмотреть официальную документацию здесь: https://reactjs.org/docs/react-component.html.

Я предлагаю использовать механизм без сохранения состояния для обработки больших данных, особенно при совместном использовании. Лично я использую mobx (https://github.com/mobxjs/mobx), который является отличной основой для создания приложений без сохранения состояния.

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