В реакциях, реквизит проходит по значению или проходит по ссылке?
Насколько я могу судить, если я передаю родительское состояние компонента до ребенка, то этот ребенок получит состояние 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, а не для обработки данных, что значительно повышает производительность приложений.