sup*_*ize 19 javascript reactjs
React 的新手,有一个潜在的愚蠢问题。
我怎么可能省略带括号的 Reacts 返回语句。
const Nav = () => (
<nav className="c_navbar">
{ some jsx magic here }
</nav>
)
Run Code Online (Sandbox Code Playgroud)
而我看到其他这样的情况:
const Nav = () => {
return (
<nav className="c_navbar">
{ some jsx magic here }
</nav>
)
}
Run Code Online (Sandbox Code Playgroud)
据我了解()返回对象文字时的帮助,以便它不会将其与代码块混淆。但我不认为这适用于这里?
谢谢
Est*_*ask 14
第一个片段是隐式返回。提供括号只是为了方便开发者;以可读性为代价,可以在没有它们的情况下明确解析代码:
const Nav = () =>
<nav className="c_navbar">
{ some jsx magic here }
</nav>
Run Code Online (Sandbox Code Playgroud)
而第二个片段包含显式返回。这就是 React 中常用的括号的情况,因为当return语句之后没有可选表达式时,就没有返回值。
return
<nav className="c_navbar">
{ some jsx magic here }
</nav>
Run Code Online (Sandbox Code Playgroud)
被解析为
return;
<nav className="c_navbar">
{ some jsx magic here }
</nav>
Run Code Online (Sandbox Code Playgroud)
为了在没有括号的情况下正确解析,它应该是:
return <nav className="c_navbar">
{ some jsx magic here }
</nav>
Run Code Online (Sandbox Code Playgroud)
因此括号通常用于隐式和显式返回的一致性,并允许通过适当的缩进提高可读性。
小智 10
这是一个 JavaScript 问题,而不是一个 React 问题。
\n\n1) 箭头函数中使用括号()返回一个对象。
\n\n() => ({ name: \'Amanda\' }) // Shorthand to return an object\nRun Code Online (Sandbox Code Playgroud)\n\n这相当于
\n\n() => { // Block body\n return { name : \'Amanda\' }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n() => ({ name: \'Amanda\' }) // Shorthand to return an object\nRun Code Online (Sandbox Code Playgroud)\r\n为什么?当您将左括号与 return:\nreturn (\n您告诉 JavaScript 引擎它可以\xe2\x80\x99t 自动插入分号,直到括号关闭为止。
\n\n对于单行语句,我们不需要将其括在括号内。
\n\n() => { // Block body\n return { name : \'Amanda\' }\n}\nRun Code Online (Sandbox Code Playgroud)\r\n更多信息可以在这里找到: https://medium.com/@leannezhang/curly-braces-versus-parenthesis-in-reactjs-4d3ffd33128f
\n| 归档时间: |
|
| 查看次数: |
5098 次 |
| 最近记录: |