翻过高山走不出你
让我们看看每个选项的优缺点,给定组件:Userconst User = ({name,lastName}) => <>...</>破坏道具:const props = { name: 'Jhon', lastName: 'Cena'};<User {...props}/>优点短缺点键必须与属性匹配容易出错,当组件未使用某些键时,可能会出现意外行为无自动完成和自动建议const props = { name: 'Jhon', lastName: 'Cena', id: 325013213};// User component might be updated in future releases and might use id unexpectedly.<User {...props}/>传递命名道具const props = { user: 'Jhon', lastName: 'Cena'};<User name={user} lastName={lastName}/>优点自动完成和自动建议值不必与 prop 名称匹配(如name={user})维护缺点长语法在许多道具上不可读可重复 (className={className})破坏命名的道具const props = { name: 'Jhon', lastName: 'Cena'};<User {...{ name,lastName }}/>道具自动完成和自动建议维护读缺点外观和感觉都很糟糕在我的代码库中,我试图组合:const props = { className: 'user', user: 'Jhon', lastName: 'Cena'};<User {...{className,lastName} name={user}/>// Although you totally can write like this,// I find it confusing<User {...{className, name:user,lastName}/>