5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

React BootstrapのGetting startedを動かすまで

Posted at

React Bootstrap

reactjsでWebページを作るときに、reactjs用のBootstrapが存在することがわかったので、ためしてみた。
React BootstrapGetting startedの説明が雑なのか、自分のjsの知識が乏しいがためか、アラートメッセージ一つ出すのに時間がかかったので、やり方をメモする。

Getting startedを読む

Getting startedには、CommonJSAMDBrowser globalsの3つの方法が紹介されていて、この時点でCommonJSAMDというキーワードに初学者は悩む。(最初はAMDがANDのtypoだと思っていた)
それぞれ、以下を読んでなんとなく把握する。(サーバーサイド側のjsの依存関係を解決するための仕様と実装のようだ。サーバーサイド側の話だと思っている、AMDは違うかもしれない)

JavaScriptのモジュール管理(CommonJSとかAMDとかBrowserifyとかwebpack)
CommonJSの話

image

Browser globalsを試す

赤字でreact-bootstrap.min.jsが必要だと書いてあります。

image

このまま、htmlにコードをはって実行しても、動きません。
以下のパスにjsを用意する必要があります。

"path/to/react-bootstrap-bower/react-bootstrap.min.js"

react-bootstrap.min.jsを入手する

CommonJSのコード例にあった、以下を実行。npmを事前にインストールする必要があるので、そこまでも結構時間がかかった。
(npmは、nodebrewをインストールして追加しました)

  $ npm install react
  $ npm install react-bootstrap

react-bootstrapをイントールすると、~/node_modules/react-bootstrap/distディレクトリにreact-bootstrap.min.jsがダウンロードされる。

このreact-bootstrap.min.jsをhtmlから読める場所にコピーする。

Alertコンポーネントを動かす

その後、いろいろ試行錯誤の結果、なんとか動かいた。ポイントは以下。

  • bootstrap.min.cssが必要
  • react.jsJSXTransformer.jsは、facebookのcdnを利用
  • react-bootstrap.min.jsは前の手順でnpmで入手したものをパスで指定。(htmlから読める場所)
  • React Bootstrapのサンプルのとおりvar Alert = ReactBootstrap.Alert;だけでは画面に描画されない。
    • ReactBootstrap.Alertで生成した、Alert変数を使って、alertInstanceを生成。
    • React.renderメソッドをコールして、DOMの指定をする。
test01.html
<!DOCTYPE html>
<html>
<head>
  <title>test01</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
  <script src="https://fb.me/react-0.13.3.min.js"></script>
  <script src="https://fb.me/JSXTransformer-0.13.3.js"></script>
  <script src="js/react-bootstrap.min.js"></script>
  <script type="text/jsx;harmony=true">
    var Alert = ReactBootstrap.Alert;
    const alertInstance = (
      <Alert bsStyle='warning'>
        アラートメッセージ
      </Alert>
    );
    React.render(
            alertInstance,
            document.getElementById('test-container')
    );
  </script>
</head>
<body>
<div id="test-container"></div>
</body>
</html>

でた。

image

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?