Мне сложно понять, как функциональный компонент React через es6 получает реквизит в качестве аргумента, помещая его в объект. Является ли эта часть функции es6? Или это часть Реакта, чтобы магически вытащить реквизит в качестве аргумента без ссылки на this.props...
? Если кто-то может переписать нижний компонент в vanilla js для меня с функцией (не React.createElement, как это делает Babel), это было бы очень полезно.Переписать реакцию функционального компонента в vanilla javascript
const Repos = ({repos}) => {
return (
<div>
<h3> User Repos </h3>
<ul className="list-group">
{repos.map((repo, index) => {
return (
<li className="list-group-item" key={repo.name}>
<h4><a href={repo.html_url}>{repo.name}</a></h4>
<p>{repo.description}</p>
</li>
)
})}
</ul>
</div>
)
}
отличное объяснение! аргумент всегда неявно возвращается, если вы ничего не делаете с ним? поэтому обычно, когда это работает с реакцией, а функциональный компонент получает несколько реквизитов, es6 разрушает каждый отдельно? поэтому, если у вас есть 'props = {foo:" foo ", bar:" bar "}' React передаст это в компонент для вас как аргумент, а затем, когда вы объявите 'const = function {{foo, bar}) { ...} 'и назовите его позже, es6 будет знать, что аргумент obj относится к реквизитам и автоматически разрушает его для использования в вашей функции? – stackjlei
Ya, вы можете разрушить несколько свойств, если это ваш вопрос. Но вы не можете динамически определить шаблон деструктурирования, который вам всегда нужно знать во время реализации, какие свойства вы хотите. – ftor