JS: React
Теория: Props
Без использования данных некоторые компоненты на практике могут быть бесполезными. Например, компонент может отрисовывать какой-то специфический текст, который может меняться. Создавать на каждый конкретный случай свой собственный компонент с нужным текстом — не самая хорошая идея. Это не говоря о том, что чаще всего такое просто невозможно, ведь текст может подставляться динамически.
Передавать данные в компоненты можно, и делается это с помощью пропсов (props):
https://codepen.io/hexlet/pen/YxObvW
Как видно, снаружи пропсы передаются как атрибуты в HTML, которые внутри компонента доступны из объекта props. Причём такая передача входных данных для вас уже должна быть не в новинку. Встроенные компоненты точно так же принимают на вход пропсы, такие как className и другие.
Пропсы — очень простой механизм передачи данных в компоненты, который, как правило, не вызывает никаких сложностей. Главное, что нужно запомнить при работе с пропсами: их нельзя изменять. Во-первых, из-за принципа работы React это просто ни к чему не приведёт, во-вторых, для работы с изменяемым состоянием в React предусмотрен совершенно другой механизм, который будет рассмотрен позже.
Оператор расширения
Работая с пропсами, нередко приходится передавать множество параметров, либо эти параметры присутствуют в коде в виде объекта. В таком случае можно упростить передачу, используя оператор расширения (spread-оператор).
Код выше эквивалентен следующему примеру:
Пропсы по умолчанию
Другая задача, с которой сталкиваются разработчики — установка значений по умолчанию для пропсов (для случаев, когда какие-то пропсы не переданы). Проще всего устанавливать их прямо внутри функции render, используя такой подход:
Это сработает, но потенциально может привести к проблемам производительности (в первую очередь). Тема производительности будет рассмотрена в одном из последних уроков.
В React предусмотрен способ устанавливать значения пропсов по умолчанию. Пример:
Рекомендуемые программы
Завершено
0 / 30




