什么时候应该写{}环绕导入的东西?

sta*_*ack 2 javascript import react-native

请看看这些:

import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,它会输入一些东西,但是为什么React会出现{}这种情况呢?{Component} { AppRegistry, Text, View }

无论如何,我什么时候应该把东西包进去{}

Ace*_*Ace 5

区别在于文件导出的方式,而{}不是默认导出.只能有一个默认导出.

其中的任何内容{}都是导出的命名导出函数,类或变量的一部分.

如果您查看反应源代码,您将找到以下es5代码.

var ReactComponent = require('./ReactComponent');
...

var React = {
  ...
  Component: ReactComponent,
  ...
}

module.exports = React;
Run Code Online (Sandbox Code Playgroud)

当您import React, { Component }将所有React以及React.Component导入为Component时

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}
Run Code Online (Sandbox Code Playgroud)

class Welcome extends Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}
Run Code Online (Sandbox Code Playgroud)

这通常用于解构对象,如下所示.

const person = {
  firstName: 'John',
  lastName: 'Doe',
};

const { firstName } = person;
Run Code Online (Sandbox Code Playgroud)

哪个是一样的

person.firstName
Run Code Online (Sandbox Code Playgroud)