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
  • 参考 const について
  • JSX は HTML でも JavaScript でもない
  • JSX は開発環境がコンパイルして、JavaScript のオブジェクトに変換してくれる
  • React Element は単なる JavaScript Object
  1. 初めての React App

JSX と React Element

Previous最小限の React アプリケーションの実装NextES2015 のアロー関数について

Last updated 7 years ago

import React from 'react'
import { render } from 'react-dom'

var reactElement = <h2>こんにちは世界</h2>

console.log(reactElement)

render(reactElement, document.getElementById('root'))

参考 const について

const は var と同じく変数を作るための宣言です。ES2015 以降で使用できます。特徴として、変数を再代入することができません。また、同じ名前の変数を再宣言することもできません。基本的には const を使用します。

const var1 = 'test'
var1 = 'test2' // 再代入はできないのでエラーが出ます。

const var1 = 'test2' // 再度同じ名前の変数を宣言することもできません。

JSX は HTML でも JavaScript でもない

<h2>こんにちは世界</h2> という部分は、HTML でも JavaScript でもない。.js ファイルに HTML は書けないはずだし、JavaScript としては定義されていない謎の値、つまり変数でも関数でもオブジェクトでもない謎の文字であるので、JavaScript でもない。

ではなぜ機能するかというと、JSX を開発環境(今回ならば CodeSandbox ですし、ゆくゆくは Babel がその役割を担うことになります)が認識して、React Element にコンパイルしてくれて、結果 JavaScript のオブジェクトに変換してくれているからなのです。

JSX は開発環境がコンパイルして、JavaScript のオブジェクトに変換してくれる

JSX は開発環境がコンパイルして、JavaScript のオブジェクトに変換してくれるので、結果的には単なる JavaScript になっている。

そのため、変数に代入できる。

const reactElement = <h2>こんにちは世界</h2>

なのでその値を、render()に与えて、使用可能。

render(reactElement, document.getElementById('root'))

React Element は単なる JavaScript Object

コンソールで表示するとわかるが、単なるオブジェクト。これを render() が解釈して、本当の HTML に変換して、出力している。

console.log(reactElement)
参考コード