Udemy-React-Course
  • Introduction
  • CodeSandbox で作る開発環境
    • CodeSandbox を使う利点
    • GitHub との連携
    • CodeSandbox の構造
  • 初めての React App
    • 最小限の React アプリケーションの実装
    • JSX と React Element
    • ES2015 のアロー関数について
    • React でアロー関数を使用する
    • 初めての React Component
    • ES2015 の import / export
    • export default
    • 2章の復習
  • State を持ったコンポーネント
    • State とは何か
    • ES2015 の class
    • React Class Component の書き方
    • click された時に setState で state を変更する
    • H20 Component 1
    • H20 Component 2
    • H20 Component 3
    • H20 Component 4
    • map と filter
    • map と filter の実践
  • 実践:TodoApp の作成
    • TodoApp の作成
  • 非同期処理, Promise, Ajax
    • HTTP プロトコルと AJAX
    • 非同期処理と Promise
    • JSON を取得し、その内容をレンダリングする React App の作成
  • 実践:API を叩く App
    • Giphy API を使用して、GIF画像検索する React App の作成
  • Redux の導入
    • Redux の概要
    • createStore で store を作る
    • Provider と Connect / store を React で使用する
    • Redux の全体像の確認
    • Presentational Component と Container Component
    • Action Creator
    • Combine Reducer
  • Redux-thunk を用いた非同期処理
    • Redux-thunk で非同期にアクションを発行する
    • Promise を Redux-thunk 上で活用する
  • React + Redux + Redux を用いた Giphy App
    • store を作る
    • Component に store を connect する
    • Search コンポーネントの作成
    • GiphyAPI を叩くメソッドの作成と Redux-thunk を使った非同期処理
    • 改善
  • 補足資料
    • App = ({name}) => name 型のシンタックス / Destructuring assignment
    • Class Component と Functional Component の使いわけ
  • 参考資料と謝辞
Powered by GitBook
On this page
  • export default というシンタックスについて
  • export default するパターンの書き方
  • export default 「しない」パターンの書き方
  1. 初めての React App

export default

PreviousES2015 の import / exportNext2章の復習

Last updated 7 years ago

export default というシンタックスについて

export default と書くシンタックスがあり、先ほど説明したものとは少し異なります。大きな違いは以下の通りです。

  • export default したものに関しては、import するときに {} を使わない。

  • 1 ファイル内で、1 export default だけしかできない。(通常の export は複数できる)

  • そのため、1ファイルに1コンポーネントだけを作る場合には、default を使う場合がスタンダード

// index.js

import React from "react";
import { render } from "react-dom";
// export default のパターン
import ClassComponent1 from "./ClassComponent1";
import ClassComponent2 from "./ClassComponent2";
// export (default ではない)パターン
import { ClassComponent3 } from "./ClassComponent3";

render(
  <div>
    <ClassComponent1 />
    <ClassComponent2 />
    <ClassComponent3 />
  </div>,
  document.getElementById("root")
);

export default するパターンの書き方

// ClassComponent1.js

import React from "react";

// class の定義をすると同時に 
// export default する書き方
export default class ClassComponent extends React.Component {
  render() {
    return <div>ClassComponent</div>;
  }
}
// ClassComponent2.js

import React from "react";

// 一旦 class の定義をしてから
class ClassComponent2 extends React.Component {
  render() {
    return <div>ClassComponent2</div>;
  }
}

// 定義した class を export default するやり方
export default ClassComponent2;

export default 「しない」パターンの書き方

// ClassComponent3.js

import React from "react";

// default はしない export
export class ClassComponent3 extends React.Component {
  render() {
    return <div>ClassComponent3</div>;
  }
}
https://codesandbox.io/s/93qnn3wyzp