理解 React 中的 es6 和 jsx
Understand es6 and jsx in react
我正在阅读官方的 redux 教程。
http://redux.js.org/docs/basics/UsageWithReact.html
在文件中
components/Link.js
有如下代码
import React, { PropTypes } from 'react'
const Link = ({ active, children, onClick }) => {
if (active) {
return <span>{children}</span>
}
return (
<a href="#"
onClick={e => {
e.preventDefault()
onClick()
}}
>
{children}
</a>
)
}
Link.propTypes = {
active: PropTypes.bool.isRequired,
children: PropTypes.node.isRequired,
onClick: PropTypes.func.isRequired
}
export default Link
我想知道为什么函数 link 接受花括号括起来的变量。其次,if 块内的 return 语句具有不带大括号的 span
jsx 标记,但其次,带有 <a>
标记的 if 块外的 return 语句具有大括号.谁能解释一下为什么?
编辑: 从答案中了解解构赋值后,我阅读了以下有关如何在函数中使用它的文章,这对我来说变得非常清楚。
https://simonsmith.io/destructuring-objects-as-function-parameters-in-es6/
函数参数使用 destructuring assignment 从对象中提取值。
JSX 周围的大括号是为了保持缩进干净。
你可以这样做:
return <div>
lol
</div>
但是你不能这样做:
return
<div>
lol
</div>
因此,为了保持 JSX 的缩进干净,您必须用大括号将标记括起来。
那是 stateless function,你可以将 react 类 定义为没有状态和生命周期方法的普通 JS 函数
大括号放在那里是为了使用一个叫做 Destructuring 的惊人的 es6 特性。
基本上使用 es6 与做的一样:
const Link = (props) => {
const { active, children, onClick } = props;
...
不使用 ES6 和做一样:
const Link = (props) => {
const active = props.active;
const children = props.children;
const onClick = props.onClick;
....
关于 return 当您的 jsx 元素超过 1 行时您使用方括号。
我正在阅读官方的 redux 教程。
http://redux.js.org/docs/basics/UsageWithReact.html
在文件中
components/Link.js
有如下代码
import React, { PropTypes } from 'react'
const Link = ({ active, children, onClick }) => {
if (active) {
return <span>{children}</span>
}
return (
<a href="#"
onClick={e => {
e.preventDefault()
onClick()
}}
>
{children}
</a>
)
}
Link.propTypes = {
active: PropTypes.bool.isRequired,
children: PropTypes.node.isRequired,
onClick: PropTypes.func.isRequired
}
export default Link
我想知道为什么函数 link 接受花括号括起来的变量。其次,if 块内的 return 语句具有不带大括号的 span
jsx 标记,但其次,带有 <a>
标记的 if 块外的 return 语句具有大括号.谁能解释一下为什么?
编辑: 从答案中了解解构赋值后,我阅读了以下有关如何在函数中使用它的文章,这对我来说变得非常清楚。 https://simonsmith.io/destructuring-objects-as-function-parameters-in-es6/
函数参数使用 destructuring assignment 从对象中提取值。
JSX 周围的大括号是为了保持缩进干净。
你可以这样做:
return <div>
lol
</div>
但是你不能这样做:
return
<div>
lol
</div>
因此,为了保持 JSX 的缩进干净,您必须用大括号将标记括起来。
那是 stateless function,你可以将 react 类 定义为没有状态和生命周期方法的普通 JS 函数
大括号放在那里是为了使用一个叫做 Destructuring 的惊人的 es6 特性。
基本上使用 es6 与做的一样:
const Link = (props) => {
const { active, children, onClick } = props;
...
不使用 ES6 和做一样:
const Link = (props) => {
const active = props.active;
const children = props.children;
const onClick = props.onClick;
....
关于 return 当您的 jsx 元素超过 1 行时您使用方括号。