Могу ли я знать, почему мы обертываем все параметры внутри {} следующим образом: {component: Component, authed, ... rest}?
Это синтаксис JavaScript, известный как назначение деструктурирования. Это невероятно удобный способ распаковки значений из массивов и объектов.
Представьте, что ваша функция ожидает объект с ключом id. Вы пишете function(myObject) { return myObject.id; }
. С деструктурой можно написать function({id}) { return id; }
. И ожидайте, что переданный объект будет деструктурирован в запрошенные ключи.
Что такое (реквизит) и ... реквизит?
Во-первых, ...
известен как оператор распространения. И еще один удобный способ расширения массива или объекта в местах, где ожидаются аргументы или элементы.
Во-вторых, (props)
является частью объявления функции стрелки. Обратите внимание, что за ним следует стрелка: (props) =>
. Это то же самое, что написать function(props)
. Однако между функциями стрелок и ключевым словом function есть некоторые тонкие различия, в основном то, к чему относится ключевое слово this.
Также обратите внимание, что за (props) =>
следует неявный возврат. Вы можете написать функцию со стрелкой, например, (props) => { return true;}
, используя явный возврат. Или неявный возврат без скобок, например: (props) => true
.