.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

特徴

Just the UI

コンポーネント指向

Virtual DOM

Data flow

コンポーネント中のデータの流れをstate, props -> UI要素へ一方向化している。

ファースト・ステップ

インストール

npm install -g create-react-app

サンプルの生成と実行

生成

実行

セカンド・ステップ

サンプルの実装

下記の、

を考慮し、

以下のように実装する。

App.jsを書換

https://github.com/OpenTouryoProject/SampleProgram/blob/SpaTemplate/Template/SPATemplate/react_app/src/App.js

Menu.jsを追加

https://github.com/OpenTouryoProject/SampleProgram/blob/SpaTemplate/Template/SPATemplate/react_app/src/Menu.js

基本的な事項

JSX

特徴

変数出力

{変数名}でJavaScript変数を出力

イベント・ハンドラ

属性の指定

自由に属性を設定可能。

<div>
    <MyComponent 
        myTitle={'タイトル'}
        myValue={this.state.value} />
</div>

子コンポーネントからprops.(定義した属性名)と利用。

デザイン(CSS)は設計しない

基本形のコンポーネント

import React from 'react';
import ReactDOM from 'react-dom';

class MyComponent extends React.Component {
    constructor(props,context){
        super(props,context)
        this.state = { viewText : 'テストページ' }
    }
    render(){
        return (
            <div>
                <h1>Hello! World.</h1>
                <p>このページは{ this.state.viewText }です。</p>
            </div>
        )
    }
}

constructor

constructorの記述自体を丸々省略できる。

render

コンポーネントのネスト

その他のコンポーネント

状態を持たないコンポーネント

Stateless functional components

stateを自身で持たないシンプルなコンポーネントの場合、
React.Componentを継承したクラスの定義は不要。

テンプレート・コンポーネント

state

class MyComponent extends React.Component {
  constructor(props, context) {
    super(props, context)
    this.state = {
      viewText: props.text,
      viewFlg: props.defaultFlg,
    }
  }
  renderChange() {
    // viewFlgの状態を切替(0 <-> 1)
    let newFlg = this.state.viewFlg == 1 ? 0 : 1;
    this.setState({ viewFlg: newFlg });
  }
  render() {
    return (
      <div>
        <h1>Hello! World.</h1>
        <LeadText viewText={this.state.viewText} viewFlg={this.state.viewFlg} />
        <button onClick={()=>this.renderChange()}>切替</button>
      </div>
    )
  }
}

renderの例

繰り返し処理

map内にラムダ式を書く。

基本形のコンポーネントとしても、
Stateless functional componentsとしても、書ける。

データおよびイベント連携

親から子

props

JSX Spread Attributes

親コンポーネントが保持しているデータを全て子コンポーネントのpropsに渡す。

componentWillReceiveProps?

propsの更新を反映する。

変更通知を受け取るので、この中でsetStateする。

componentWillReceiveProps: function(nextProps) {
  this.setState({
    likesIncreasing: nextProps.likeCount > this.props.likeCount
  });
}

子から親

親のハンドラをthis.propsで子に渡して、子から呼び出す。

その他

Flux

Redux

SharedState?

・・・

拡張の事項

react-hot-loader(AppContainer?

Reactコンポーネントが状態を失うことなく、
ライブで再ロードされるようにするプラグイン。

react-router-dom(BrowserRouter?

isomorphic-fetch(fetch)

XMLHttpRequest?代替のfetch APIのPolyfill(WHATWG Fetch polyfill)。

コンポーネント・ライブラリ

CSS

react-bootstrap

BootstrapをReactから使いやすくしたライブラリ。

Material-UI

リサイズ・移動など

React-Resizable

Drag&Dropで画面項目をリサイズ

React-Draggable

Drag&Dropで画面項目を移動

UIコンポーネント

React Contextmenu

右クリックでメニューを表示する

React Tree Menu Component

ツリーメニュー

rc-calendar

カレンダーでの日付表示、日付入力機能

react-big-calendar

スケジューラ用途のカレンダー

React Bootstrap Table

高機能テーブルコンポーネント(ソートやフィルタリング、ページジング)。

参考

@IT

Qiita

Schoo

学べる生放送コミュニケーションサービス

POSTD

ファースト・ステップ的な

React初心者のまとめ

今からはじめるReact.js

React習得記まとめ

https://qiita.com/ryo_t/items/67e319f8cc41c2d96eb9

create-react-app

データ連携

State と Props

Flux

Redux

コンポーネント

Stateless Functional Components

コンポーネント・ライフサイクル

マイクロソフト系技術情報 Wiki


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS