Подменять апи доступа к данным
тут как бы в корне подход другой принят
допустим есть компонент <PaymentForm />
Ты хочешь, чтобы этот компонент как-то обратился к сервису Payment, у которого бы последовательно дёргал условные методы типа authenticateUser, confirmPhoneNumber, verifyEmail, sendPayment
И конечно тебе хочется иметь возможность этот сервис Payment подменять
В более фп подходе с компонентами принято несколько по-другому, что-то вроде такого
<Payment
onAuth={data => /* handle auth */}
onConfirmPhoneNumber={/* handle phone number confimration */}
onVerifyEmail={/* handle email verification */}
onSendPayment={amount => /* send payment */}
{...otherImportantConfigurationProps}
/>
я наспех набросал, но хоупфулли мысль понятна
И в таком случае не составляет труда использовать <Payment /> в разных местах, передавай ему разные хэндлеры бизнес-логики