More Related Content
PDF
PDF
PDF
PDF
PDF
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦 PDF
PDF
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_... PDF
What's hot
PDF
Azure IoT HubとIoT Edgeを活用した "三密対策"ソリューション「comieru LIVE」の開発プロジェクトへの道のり PDF
Google Container Engine と Kubernetes で 無理をしないコンテナ管理 PDF
新プロジェクト Hyperledger Cactus のご紹介 PDF
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装 PDF
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門 PDF
Developers Summit 2018 | IoTサービスを始める際に必要なこととは PDF
.NET Gadgeteerで組み込み開発の第一歩 PDF
PDF
20141003 webマーケティングエンジニアリング PDF
一エンジニアが伝えたい、プロジェクトや組織の運営を理想に近づけるための考え方 PDF
アジャイルの手法を取り入れたプロジェクトマネジメントの実例 PDF
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~ PPTX
Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会 PDF
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報 PDF
PDF
IoT 入門 ~ .NET Gadgeteer で簡単プログラミング PDF
大手ユーザー企業に入ってマネジメントでやってみたこと PPTX
PDF
PPTX
Similar to React vtecx20170920
PDF
PDF
React.js + Flux入門 #scripty02 PDF
Webアプリ開発入門_たくてぃん道場 React bootcamp by CraftStadium PDF
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ) PDF
PDF
PPTX
PPTX
PDF
PDF
20210802 softwaredesign #27 kitazaki PDF
React+Redux+Node.js+Raspberry Piで ビデオプレイヤーを作りたかった話 PDF
図とコード例で多分わかる React と flux (工事中) PDF
PDF
PDF
PDF
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」 PPTX
PPTX
Hokuriku.net 2013 01-26 node.js More from Shinichiro Takezaki
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PPT
Recently uploaded
PDF
【採用ピッチ資料】ランド・ジャパンの未来の仲間たちへ 2026年度改訂版.pdf PDF
#42_10.OWASPTop10_2025:An Overview and How Security Risks Have Evolved Since ... PDF
合同会社エンジニアリングマネージメント会社説明資料_2026-02 Engineering Management LLC PDF
【プロマネ仕事術】コミュニケーションスキル② - "報告" の5つのルール ~戦略を最大化する「戦略的報告」の技術~ PPTX
★【dodaキャンパス】27卒向け【交換できるくん】会社紹介説明資料_vol3★ PPTX
株式会社できるくんHP_CV最大化サイト監査レポート_主要ページ分析と改善提案 React vtecx20170920
- 1.
Copyright © VirtualTechnology, Inc
Reactとvte.cxでWebアプリ
ケーションを作成する#2
2017/9/20 竹嵜 伸一郎(@stakezaki)
1
<動作確認~ソース解説>
- 2.
Copyright © VirtualTechnology, Inc
竹嵜 伸一郎 (たけざき しんいちろう)
twitter id:stakezaki
(有)バーチャルテクノロジー代表取締役
2
- 3.
Copyright © VirtualTechnology, Inc
React+vte.cx勉強会#2
• Reactのサンプルアプリの内容を解説し、実
際の開発を体験してもらいます
<タイムテーブル>
18:30 ~ 19:30 セットアップとReactの概要
19:35 ~ 20:35 ソースコードの解説
20:35 ~ 20:45 質疑応答
• 今日のポイントは、「フォームとエンティティ」です。
3
- 4.
Copyright © VirtualTechnology, Inc
vte.cxビジョン
”もうフルスタックエンジニアはいらない。
HTMLとJSの知識さえあればWebサービスを
開発できる。
そのような世界を私たちは目指しています。”
4
- 5.
Copyright © VirtualTechnology, Inc
サンプルアプリのセットアップ
• Visual Studio Codeの導入
– https://code.visualstudio.com/download
• Windowsの場合、git for windowsの導入
– https://git-for-windows.github.io/
• あとは、以下のqiitaの記事を見ながら
セットアップ
– http://qiita.com/stakezaki/items/0401d7
9d392b081fb85e
5
- 6.
Copyright © VirtualTechnology, Inc
Reactの概要
• ReactはFacebookが公開しているライブラ
リでUIを効率的に構築することができる
– HTMLに似たJSXのテンプレートを使うことで
直感的にUIを記述できる(仮想DOM)
– コンポーネントの組み合わせで全体のアプリを
構築する
6
- 7.
Copyright © VirtualTechnology, Inc
Reactの最も効率的な学習方法
• Quick Startを一通り動作確認する
– https://facebook.github.io/react/docs/hell
o-world.html
7
- 8.
Copyright © VirtualTechnology, Inc
ES2015(ES6)も覚えましょう
• let・constキーワードによる変数宣言
• class構文
• importとexportによるモジュール構文
• アロー関数(Arrow Functions)
• その他、テンプレート文字列などいくつ
かある
8
- 9.
Copyright © VirtualTechnology, Inc
importとexport
• export default foo
• import foo from ‘foo’
• import {Form,Col} from 'react-
bootstrap'
9
- 10.
Copyright © VirtualTechnology, Inc
バンドラ(Webpack)とタスクランナ(Gulp)
10
ES2015
React(JSX)
Flow
トランスパイル
Css/Sass
ビルド・
モジュール結合
JavaScript
(ES5)
ローカルPC
サーバ(vte.cx)
Import/
export
モジュール結合
GulpによるDeploy Webpackによるバンドル
- 11.
Copyright © VirtualTechnology, Inc
アロー関数
• <Form horizontal
onSubmit={(e)=>this.handleSubmit(e)}>
• arrow関数を使えばbindしなくてもよい
– function(e) = {this.handleSubmit(e).bind(this)}
11
- 12.
Copyright © VirtualTechnology, Inc
Reactの基本構文
class Setup2 extends React.components {
constructor(props:Props) {
super(props)
this.state = { isConfirmed: false }
}
componentWillMount() {
}
handleSubmit(e: InputEvent) {
}
render() {
}
}
ReactDOM.render(<Signup />, document.getElementById('signform'))
// SignupコンポーネントをHTMLのid:signformに挿入
12
ReactComponentを継承してclassを定義
Constructorで初期値を設定
Stateは更新されるとrender()が実行される特殊な変数
表示前に実行される(component関数)
JSXをレンダリング
ボタンクリックで実行(ユーザ関数)
- 13.
Copyright © VirtualTechnology, Inc
Component Lifecycle
• componentWillMount()
– ComponentがDOMツリーに追加される前に一度だけ呼ばれます。
• componentDidMount()
– ComponentがDOMツリーに追加された状態で呼ばれます
• componentWillReceiveProps(nextProps)
– Propが更新される時に呼ばれます。
• shouldComponentUpdate()
– falseを返すとVirtualDOMの比較を行わずにrerenderされない
• componentWillUpdate(nextProps, nextState)
– Componentが更新する前に呼ばれます。
• componentDidUpdate(prevProps, prevState)
– Componentが更新された後に呼ばれます。
• componentWillUnmount()
– ComponentがDOMから削除される時に呼ばれます。
13
- 14.
Copyright © VirtualTechnology, Inc
state
• this.state
• 更新すると再描画される(render()が実行)
– 値の更新は、this.setState()を使う
– stateを直接は更新できない
• サンプル
– 処理待ち中にボタンの上にSpinnerを表示する
– http://qiita.com/stakezaki/items/0d467358a9
67d382697e
14
- 15.
Copyright © VirtualTechnology, Inc
エラー表示のテクニック
{ this.state.isLoginFailed &&
<FormGroup>
・・・
}
• State.inLoginFailedがtrueのときだけエ
ラーを表示する
15
- 16.
Copyright © VirtualTechnology, Inc
型
• 型があれば10%〜20%のバグを減らすこ
とができるとの調査結果
• サーバサイドにおける動的型付け言語疲れ
16
- 17.
Copyright © VirtualTechnology, Inc
flow
• 静的型付けにより型エラーを検出
/* @flow */
import type {
State,
Props,
InputEvent
} from 'demo.types'
handleSubmit(e: InputEvent) {
・・・
}
17
- 18.
Copyright © VirtualTechnology, Inc
コンポーネントを意識した開発
• demo.jsのreact-router-dom
– <ListItems>、<ItemInput>、
<ItemUpdate>コンポーネント表示を切り替
える
• 開発時はそれぞれのコンポーネントを
別々に作成して最後にまとめる
• 外部コンポーネントを利用する
– npmでインストールしてimportするだけ
– ReCAPTCHA、パスワード強化チェック
18
- 19.
- 20.
Copyright © VirtualTechnology, Inc
ReactPasswordStrength
20
• https://github.com/mmw/react-password-strength
これ
- 21.
Copyright © VirtualTechnology, Inc
ReCAPCHA
21
• https://github.com/dozoisch/react-google-recaptcha
これ
- 22.
Copyright © VirtualTechnology, Inc
uncontrolled form の例
• demo_iteminput.js
– <FormGroup controlId={hobby_type}>
• テーブル等を扱う場合はkeyが必要
– <tbody key={row.toString()}>
– Reactのルールと考えればよい
• Rowsの数だけ行を表示
– {this.state.rows.map(row =>
this.HobbyForm(row))}
• addRow
– rows: prevState.rows.concat([prevState.rows.length+1])
– Rowsに行の数を追記する
22
- 23.
Copyright © VirtualTechnology, Inc
Controlled FormとEntity
• signup2.js
– 詳細は、
http://qiita.com/stakezaki/items/cbbfbf23
e107b60859c9
23
- 24.
- 25.