React 元素和粗箭头函数
React elements and fat arrow functions
在 Redux 示例中,使用的语法是:
const App = () => (
<div>
<AddTodo />
<VisibleTodoList />
<Footer />
</div>
)
我在玩弄一个新的示例应用程序,并在上面的代码中输入了大括号而不是圆括号,如下所示:
const App = () => {
<div>
<AddTodo />
<VisibleTodoList />
<Footer />
</div>
}
我控制台记录了以下两个结果,结果似乎是一样的。我的问题是这两者之间有什么区别,为什么 React 喜欢圆括号而不喜欢大括号?
TL;DR
你的第一个例子或多或少等同于:
var App = function() { return <div>...</div>; };
你的第二个大致相当于:
var App = function() { <div>...</div>; };
React 可能抱怨在第二个示例中没有返回任何内容。
稍长的版本
让我们把 React 排除在外。在 es6 中你可以像这样创建一个粗箭头函数:
const getWord = () => {
return 'unicorn';
}
我们得到了一条捷径,可以用更少的代码做同样的事情:
const getWord = () => 'unicorn';
unicorn
即使您从未在任何地方显式键入 return
。
在您的第一个示例中,您将 JSX 括在括号中。在我们的简单示例中,等效项是:
const getWord = () => ('unicorn');
或这个
const getWord = () => (
'unicorn'
);
最后四个例子是等价的。希望对您有所帮助!
在 Redux 示例中,使用的语法是:
const App = () => (
<div>
<AddTodo />
<VisibleTodoList />
<Footer />
</div>
)
我在玩弄一个新的示例应用程序,并在上面的代码中输入了大括号而不是圆括号,如下所示:
const App = () => {
<div>
<AddTodo />
<VisibleTodoList />
<Footer />
</div>
}
我控制台记录了以下两个结果,结果似乎是一样的。我的问题是这两者之间有什么区别,为什么 React 喜欢圆括号而不喜欢大括号?
TL;DR
你的第一个例子或多或少等同于:
var App = function() { return <div>...</div>; };
你的第二个大致相当于:
var App = function() { <div>...</div>; };
React 可能抱怨在第二个示例中没有返回任何内容。
稍长的版本
让我们把 React 排除在外。在 es6 中你可以像这样创建一个粗箭头函数:
const getWord = () => {
return 'unicorn';
}
我们得到了一条捷径,可以用更少的代码做同样的事情:
const getWord = () => 'unicorn';
unicorn
即使您从未在任何地方显式键入 return
。
在您的第一个示例中,您将 JSX 括在括号中。在我们的简单示例中,等效项是:
const getWord = () => ('unicorn');
或这个
const getWord = () => (
'unicorn'
);
最后四个例子是等价的。希望对您有所帮助!