8.3 まずは試してみる

 6.3 フロントエンドの開発環境(Node.js+React)で開発環境をインストールし、"npm start " を実行すると、以下の画面がブラウザに表示されます。

この画面がどのように表示されているのかを見ていきます。インストールしたcreate-react-appによって生成されるサンプルアプリは、トップページであるindex.htmlが真っ先に呼び出され、その後index.jsApp.jsというふうに実行されていきます。index.htmlpublicフォルダの下に、index.jsApp.jssrcフォルダの下にあります。

まず、index.htmlを見てみます。

という箇所があります。Reactアプリは、この id="root”の要素の子要素として表示されます。

続いて、index.jsを見ていきます。

createRootメソッドの第一引数にReactアプリの埋め込み先が指定されています。

また、root.render()の中で<App />というコンポーネントが呼び出されています。これにより配下の<App>コンポーネントを実行してidrootである要素に描画させることができます。<App>コンポーネントのコードは、App.jsに記述されており、 import './App.js’; とすることで、このコンポーネントを呼び出すことができます。

  • import './App.css’; で、この<App>コンポーネントの「見た目」を定義するCSSファイルを読み込んでいます。
  • function App() で定義している関数の中のreturn()Appコンポーネントの表示内容が定義されています。ここでは、以下が表示されるように書かれています。
  • 最後に、export default App; とすることでAppコンポーネントを他のファイルから呼び出せるようになります。

 ここで、<p> </p>の中の文字列を何か別の文字列に書き換えてみてください。エディターなどで編集して保存すると、表示されていたReactのサンプル画面も変更されているのがわかると思います。このようにReactの開発環境では、修正した結果をすぐに画面上で確認することができます。

次にApp.cssを見てみます。

これも少し変更してみましょう。こちらも修正した結果をすぐに画面上で確認することができます。

  • background-colorの値を #585c34 に書き換えると、背景色が変わるはずです。
  • min-heightの値を 50vhに書き換えると、ブラウザ全面に表示されていたアプリケーション画面が上半分に表示されるようになるはずです。

「宿題」

サンプルコンポーネント「TeamsViewer」を用意しましたので、これをApp.jsから呼び出すように変更してみてください。

このコンポーネントは、バックエンドサーバーから値を取得しますので、djangoサーバーを起動しておきます。また、次の準備をしてから動作させてください。

(1) ブラウザのクロスオリジン設定を変更

クロスオリジン(Cross-Origin)とは、Webブラウザにおいて、あるWebページ(生成元=オリジン)から、異なるドメイン、プロトコル、またはポート番号を持つ別のサーバーリソースへアクセスすることです。ブラウザはセキュリティ保護のため、異なるオリジン間の通信をデフォルトで禁止しています。(Same-Origin Policy)

Cross Origin


開発の際には、この制限をなくすための暫定的な措置を行います。


Safariの場合
・設定 -> デベロッパ 
・「クロスオリジンの設定を無効にする」をオンに変更
Google Chromeの場合
・ターミナルを開き、コマンドラインから以下のようにしてChromeを起動する
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir="/tmp/chrome_dev" --disable-web-security