Вы могли бы переписать свой код так:
const Parent = (props) => <Child {...props} />
, и это действительно очень распространенная реакция. Если вам нужно foo
, bar
или baz
где-то еще, вы можете написать это так:
const Parent = (props) => {
const { foo, bar, baz } = props;
// do something with foo, bar or baz
return <Child {...props} />;
}
Чтобы вернуться к вашим вопросам:
1) Нет, это не анти-паттерн, но вы должны использовать подходы, описанные выше (я никогда не видел кода, подобного вашему примеру, ни в одном проекте). Недостатком может быть то, что вы на самом деле больше не обращаете внимания на Child
и что вы можете передавать больше, чем вам нужно. Например, props
из Parent
может иметь дополнительное поле, например faz
, и вы просто передадите его в Child
, и оно никогда не будет его использовать.
2) Я не могу думать ни о каком значимая проблема производительности здесь. В своих проектах я использую этот подход очень часто и никогда не замечал проблем с производительностью.