Reactjs 在React.js中声明无状态功能组件的首选方法是哪一种?为什么?

Reactjs 在React.js中声明无状态功能组件的首选方法是哪一种?为什么?,reactjs,Reactjs,函数声明 function MyComponent(props, context) {} 函数表达式 const MyComponent = function(props, context){} 箭头函数 const MyComponent = (props, context) => {} 函数声明,如果您想要提升并且更喜欢可读性而不是性能 函数表达式,如果您想命名您的函数,那么您可以通过调试堆栈跟踪(例如从Chrome开发工具)更容易地识别它 如果您不关心堆栈跟踪中的匿名函数,并且

函数声明

function MyComponent(props, context) {}
函数表达式

const MyComponent = function(props, context){}
箭头函数

const MyComponent = (props, context) => {}

函数声明,如果您想要提升并且更喜欢可读性而不是性能

函数表达式,如果您想命名您的函数,那么您可以通过调试堆栈跟踪(例如从Chrome开发工具)更容易地识别它


如果您不关心堆栈跟踪中的匿名函数,并且希望避免绑定此

我的无状态组件如下所示,在我看来,它看起来非常干净,非常像HTML。此外,如果不使用括号,es6 arrow函数将假定返回表达式,因此可以省略这些表达式:

const Table = props => 
    <table className="table table-striped table-hover">
        <thead>
            <tr >
                <th>Name</th>
                <th>Contact</th>
                <th>Child Summary</th>
            </tr>
        </thead>
        <tbody>
            {props.items.map(item => [
                <TableRow itemId={item.id} />,
                item.isSelected && <TableRowDetails itemId={item.id} /> 
            ])}
        </tbody>
    </table>
const Table=props=>
名称
接触
子摘要
{props.items.map(item=>[
,
item.isSelected&&
])}

这是毫无意义的,因为它们都只是JavaScript函数,这一点已经得到了回答