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
  • HTTP プロトコルとは
  • いつどのように使われているか
  • 通常のブラウザからの HTTP Request をした場合には、ブラウザを更新してしまう
  • そこで AJAX / XMLHttpRequest object を使用した HTTP 通信
  • ポイントは…
  • Axios というライブラリを使って AJAX 通信をする
  1. 非同期処理, Promise, Ajax

HTTP プロトコルと AJAX

Previous非同期処理, Promise, AjaxNext非同期処理と Promise

Last updated 7 years ago

HTTP プロトコルとは

クライアント(例えば Chrome 等のウェブブラウザ)とサーバーが、World Wide Web(ウェブ)の世界で通信するためのプロトコル = 規約です。

いつどのように使われているか

  • ブラウザのアドレスバーに入力 -> HTTP Request -> Server

  • a タグのリンクをクリックする -> HTTP Request -> Server

通常のブラウザからの HTTP Request をした場合には、ブラウザを更新してしまう

通常のブラウザからの HTTP Request をした場合にはブラウザを更新してしまいます。こうすると、せっかく React の App が様々な状態を持っていても、ページを遷移する際に情報を失ってしまってリセットされてしまいます。また、ブラウザからの通常の HTTP 通信は、同期通信なので、レスポンスがあるまで待たなくてはいけません。

そこで AJAX / XMLHttpRequest object を使用した HTTP 通信

AJAX 二つの技術の組み合わせのことです。簡潔に言えば、「JavaScript でサーバーと非同期な通信をおこない、それによって得たデータを JavaScript で DOM に反映させることで、ユーザーに表示する手法」です。

  • ブラウザに組み込まれた XMLHttpRequest object(XHRO) を用いたサーバーとの非同期な HTTP 通信

  • 受け取ったデータを用いて JavaScript で HTML DOM を変更する

ポイントは…

  • JavaScript から HTTP リクエストを出す

  • 通信が非同期である

  • 画面が遷移しない

  • それに伴ってURLも変わらない

Axios というライブラリを使って AJAX 通信をする

const url = "https://developer.mozilla.org/en-US/docs/Web/HTML";

axios.get(url).then(res => {
  console.log(res.data);
  document.body.innerHTML = res.data;
});

https://codesandbox.io/s/pp64z70v9m