New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[react] render函数中return如果没有使用()会有什么问题? #952
Comments
没有问题, |
报错,编译失败 |
我觉得return那个()代表着一个整体如果不加的话肯定会出问题 |
|
不换行没问题,换行了就得用()包住。 |
我们在使用JSX语法书写react代码时,babel会将JSX语法编译成js,同时会在每行自动添加分号(;),如果
上面这段英文翻译成中文:
为了代码可读性我们一般会在return后面添加括号这样代码可以折行书写,否则就在return 后面紧跟着语句,这样也是可以的。 举两个正确的书写例子: const Nav = () => {
return (
<nav className="c_navbar">
{ some jsx magic here }
</nav>
)
}
const Nav = () => {
return <nav className="c_navbar">
{ some jsx magic here }
</nav>
} 错误的写法: const Nav = () => {
return
<nav className="c_navbar">
{ some jsx magic here }
</nav>
} |
为了好看! |
一般来说是要用括号包裹,特别是返回值是一个表达式的时候,而且也比较规范好看,建议使用括号包裹。但是不加括号也不会报错,及时换行了也不会报错,我以前在项目里经常这么写都没问题。 |
一个是符合规范,一个如果不加(),如果新起一行去写reactNode的话,是会报错的 |
如果只返回一个react元素,没有问题:
|
这是自动分号补齐 ( auto semicolon insertion,简称ASI ) 一个常见的坑。 |
使用()sx语句可以换行,如果不使用()任然换行的话会有编译失败的错误信息 |
希望作者能给一个答案,看评论区好多说法,刚入门的小菜鸡,轻喷 |
官网文档:“为了便于阅读,我们会将 JSX 拆分为多行。同时,我们建议将内容包裹在括号中,虽然这样做不是强制要求的,但是这可以避免遇到自动插入分号陷阱。” |
[react] render函数中return如果没有使用()会有什么问题?
The text was updated successfully, but these errors were encountered: