Create React App

Create React App

  • Getting started
  • Help
  • GitHub

›Building your App

Welcome

  • About the docs

Getting Started

  • Getting started
  • Folder structure
  • Available scripts
  • Browsers and Features
  • Updating to New Releases

Development

  • Editor setup
  • Developing Components in Isolation
  • Analyzing bundle size
  • HTTPS in Development

Styles and Assets

  • Adding stylesheets
  • Adding CSS Modules
  • Adding Sass Stylesheets
  • Post-Processing CSS
  • Adding Images, Fonts, and Files
  • Using the public Folder
  • Code Splitting

Building your App

  • Installing a Dependency
  • Importing a Component
  • Using Global Variables
  • Adding Bootstrap
  • Adding Flow
  • Adding Relay
  • Adding a Router
  • Environment Variables
  • Making a Progressive Web App

Back-End Integration

  • Proxying in development
  • Fetching Data
  • Integrating with an API
  • Title & Meta Tags

Testing

  • Running tests
  • Debugging tests

Deployment

  • Publishing to npm
  • Deployment

Advanced Usage

  • Can I Use Decorators?
  • Pre-Rendering Static HTML
  • Advanced Configuration
  • Alternatives to Ejecting

Support

  • Troubleshooting
  • Feedback

Importing a Component

This project setup supports ES6 modules thanks to Webpack.
While you can still use require() and module.exports, we encourage you to use import and export instead.

For example:

Button.js

import React, { Component } from 'react';

class Button extends Component {
  render() {
    // ...
  }
}

export default Button; // Don’t forget to use export default!

DangerButton.js

import React, { Component } from 'react';
import Button from './Button'; // Import a component from another file

class DangerButton extends Component {
  render() {
    return <Button color="red" />;
  }
}

export default DangerButton;

Be aware of the difference between default and named exports. It is a common source of mistakes.

We suggest that you stick to using default imports and exports when a module only exports a single thing (for example, a component). That’s what you get when you use export default Button and import Button from './Button'.

Named exports are useful for utility modules that export several functions. A module may have at most one default export and as many named exports as you like.

Learn more about ES6 modules:

  • When to use the curly braces?
  • Exploring ES6: Modules
  • Understanding ES6: Modules
← PreviousNext →
  • Button.js
  • DangerButton.js
Create React App
Docs
Getting StartedDocumentation
Community
Stack OverflowSpectrumTwitter
More
GitHubStar
Facebook Open Source
Copyright © 2018 Facebook Inc.