看别人react的代码得时候经常被{}
符号搞晕,不知是es6的语法还是JSX得语法,比如下面2个例子
1.
import React, {PropTypes} from 'react';
问题:这里的PropTypes
为什么要加上{}
呢?如果它是个变量,为什么React不加{}
?
2.
class ItemEditor extends React.Component {
render() {
const { onSave, onCancel } = this.props;
const item = this.props.item || {
title: '',
content: '',
};
...
...
问题:这里的const { onSave, onCancel } = this.props;
是不是就是es6的解构赋值?相当于一下这段代码么?
const onSave = this.props.onSave;
const onCancel = this.props.onCancel;
第二个问题你已经自己回答了,
第一个问题是关于es6的导入导出的理论
es6总 导出有两种
一种是默认导出
export default abc;
另外一种是其他导出
export bcd;
其中第一种,在一个文件中只能使用一次,第二种可以导出多次
一般来说 import 默认导出的模块,不用{}, 第二种就要用{},但是也可以不用
比如 import * as totalObj from "../"
具体请参考下es6的模块块的语法