В туториале о component composition
на официальном сайте response.js описано, как использовать композицию, чтобы избежать наследования, и по большей части я вижу здесь преимущество.
Но на сайте также упоминается we haven’t found any use cases where we would recommend creating component inheritance hierarchies
src:https://reactjs.org/docs/composition-vs-inheritance.html
Но тогда у нас есть учебник о шаблоне HOC (компонент высшего порядка)
src: https://reactjs.org/docs/higher-order-components.html
, который предлагает написание функций для генерации составных компонентов в качестве средства дляизбегайте дублирования логики.
Этот шаблон также используется в Relay для компонентов, работающих с GraphQL.
Для тех, кто происходит из C # / Java / PHP, их сценарии использования HOC выглядят следующим образомочевидные примеры того, когда использовать наследование.Это то, что я делал ранее в React и считаю его очень интуитивным и, что более важно, простым для отладки.
Я также пытаюсь понять преимущество функций генератора, используемых в HOC.поверх обычных составных компонентов, которые принимают внутренние компоненты через подпорки.
Итак, мой вопрос: Есть ли вариант использования для HOC в React, который нельзя было бы так же легко решить ни составом, ни наследованием?
Примеры приветствуются.
Обновление: Нашел эту статью о Inheritance Inversion
, в которой предлагается, чтобы ваш класс-оболочка наследовался от вашеговнутренний класс и вызов его метода render ().
Я могу быть предвзятым, поэтому я не буду сразу отказываться от этой идеи, поскольку она может иметь практическое применение, но сначала мне придется изучить ее подробнее.
Если у вас естьидею о том, когда это может превзойти обычную композицию или наследование, пожалуйста, оставьте комментарий или, возможно, ответ, если вы считаете, что у вас хороший случай.