SlideShare a Scribd company logo
Copyright © Virtual Technology, Inc
React初⼼者勉強会とLT⼤会
2017/10/25
1
Copyright © Virtual Technology, Inc
⽵嵜 伸⼀郎 (たけざき しんいちろう)
twitter id:stakezaki
(有)バーチャルテクノロジー代表取締役
2
Copyright © Virtual Technology, Inc
ビジョン
”もうフルスタックエンジニアはいらない。
HTMLとJSの知識さえあればWebサービスを
開発できる。
そのような世界を私たちは⽬指しています。”
3
Copyright © Virtual Technology, Inc
API以外の余計なことは考えたくない
4
適当に分散して勝⼿にスケールすることを期待
これが真のサーバレスではないのか!?
Copyright © Virtual Technology, Inc
React初⼼者勉強会とLT⼤会
5
Copyright © Virtual Technology, Inc
vte.cxアプリのセットアップ
• Visual Studio Codeの導⼊
– https://code.visualstudio.com/download
• Windowsの場合、git for windowsの導⼊
– https://git-for-windows.github.io/
• あとは、以下のqiitaの記事を⾒ながらセット
アップ
– http://qiita.com/stakezaki/items/0401d79d
392b081fb85e
6
Copyright © Virtual Technology, Inc
⼿順
• nodeのインストール(⼊れていない⽅のみ)
– https://nodejs.org/ja/
• gulpとflowのインストール
– npm install -g gulp
– npm install -g flow-bin
• vtecxblankのclone
– git clone https://github.com/reflexworks/vtecxblank.git
• vscodeでプロジェクトを開きコンソールでビルド
– npm install
• vtecxにユーザ登録後サービスを作成してデプロイ
– https://admin.1.vte.cx/login.html
– gulp deploy xxxxxxxxx / gulp serve xxxxxxx
7
Copyright © Virtual Technology, Inc
もし、⼀覧にデータが表⽰されない場合
• データを再投⼊してみてください
– gulp upload:data XXXXXXX
8
Copyright © Virtual Technology, Inc
バンドラ(Webpack)とタスクランナ(Gulp)
9
ES2015
React(JSX)
Flow
トランスパイル
Css/Sass
ビルド・
モジュール結合
JavaScript
(ES5)
ローカルPC
サーバ(vte.cx)
Import/
export
モジュール結合
② GulpによるDeploy ① Webpackによるビルド・バンドル
Copyright © Virtual Technology, Inc
Reactの概要
• ReactはFacebookが公開しているライブラ
リでUIを効率的に構築することができる
– HTMLに似たJSXのテンプレートを使うことで
直感的にUIを記述できる(仮想DOM)
– コンポーネントの組み合わせで全体のアプリを
構築する
10
Copyright © Virtual Technology, Inc
Reactの最も効率的な学習⽅法
• Quick Startを⼀通り動作確認する
– https://facebook.github.io/react/docs/hell
o-world.html
11
Copyright © Virtual Technology, 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をレンダリング
ボタンクリックで実行(ユーザ関数)
Copyright © Virtual Technology, 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
Copyright © Virtual Technology, Inc14
• URLをフォルダに⾒⽴てて⾃由に設定・追加可能
• リソースを様々なフォーマットに変換可能
• XML、JSON、MessagePack等などのデータ
• HTMLやCSS、JavaScript、PDF、画像などの静的コンテンツ
REST APIと直感的な規約
Copyright © Virtual Technology, Inc
エンドポイントURL(初期フォルダ)
• setup/_settings/folderacls.xml
15
/_htmlを除くものが実際にアクセスできるエンドポイント
Copyright © Virtual Technology, Inc
vte.cx スキーマ
• シンプルなシンタックス
– 「項⽬名(型)= 正規表現」の形式で記述
– Indexを指定可能
– 正規表現でバリデーション
• ソフトスキーマ
– 項⽬の追加が可能
– 運⽤中でも変更可
• setup/_settings/template.xml
16
Copyright © Virtual Technology, Inc
ReactRouterの
ハマリどころと解決策
17
Copyright © Virtual Technology, Inc
React Router
18
Link toで遷移先を定義
Route pathで呼び出すコンポーネントを定義
pathを指定しないとデフォルト表示
Copyright © Virtual Technology, Inc
他の画⾯からの遷移
• this.props.history.push()
– ただし、historyを親から渡さないといけない
19
Copyright © Virtual Technology, Inc
propsを渡せない問題の対応⽅法
20
• propsを渡すコンポーネントを別に作成
Copyright © Virtual Technology, Inc
リロードで404エラー回避
• BrowserRouterではなくHashRouterを使う
21
Copyright © Virtual Technology, Inc
激速!
React V16のサーバサイドレン
ダリングでPDF帳票を作成する
22
Copyright © Virtual Technology, Inc
Reactで作る帳票システムの衝撃
• 詳しくはBlogで
– https://t.co/WKirbmr06s
23
Copyright © Virtual Technology, Inc
動的PDF帳票出⼒をReactで
• ReactのSSRでHTMLを⽣成し、それをvte.cxのPDF
変換機能(reflex itext)を使ってPDFにする
24
Reflex iText
(弊社プロダクト)
Copyright © Virtual Technology, Inc
サーバサイドJSとして実装する
• /server/ssrdemo.js
25
Server Side RenderingでHTMLに
HTMLをPDFに
Styleの指定
Copyright © Virtual Technology, Inc
実⾏⽅法
• https://{サービス}.1.vte.cx/s/ssrdemo
• https://{サービス}.1.vte.cx/s/ssrdemo2
26
Copyright © Virtual Technology, Inc
HTMLタグ、Styleの書き⽅の詳細
• Reflex iText仕様(pageタグ、HTML互換タグ)
– http://reflexworks.jp/documentation.html
#reflexitext.html#G
– http://reflexworks.jp/documentation.html
#reflexitext.html#H
27
Copyright © Virtual Technology, Inc
次回、11/29 やります!
https://vtecx.connpass.com/event/70544/
28
LTにぜひご応募ください
Copyright © Virtual Technology, Inc29
support@virtual-tech.net
ご質問はこちらまで

More Related Content

What's hot (20)

PPTX
技術選択とアーキテクトの役割 (要約版)
Toru Yamaguchi
 
PDF
LIGにおけるフロントエンドチーム構築
Hayashi Yuichi
 
PDF
WebエンジニアのReactNativeでの戦い方
PIXTA Inc.
 
PDF
エンタープライヤーのためのWeb Componentsハンズオン
Mitsuru Ogawa
 
PDF
Five Steps to Culture Change を日本語で解説する 2020/11/06
Issei Hiraoka
 
PDF
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
 
PDF
.NET Gadgeteerで組み込み開発の第一歩
Yoshitaka Seo
 
PDF
.Net GadgeteerでIoT
Yoshitaka Seo
 
PDF
Idea Hackathon at vFORUM 2019 Tokyo
Motonori Shindo
 
PDF
BigQuery で 150万円 使ったときの話
itkr
 
PDF
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Kaoru NAKAMURA
 
PDF
組織の問題も解決するアーキテクチャ BackendsForFrontends
PIXTA Inc.
 
PDF
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!
史識 川原
 
PDF
IoT 入門 ~ .NET Gadgeteer で簡単プログラミング
Yoshitaka Seo
 
PPTX
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Atsushi Nakamura
 
PDF
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Fumiya Sakai
 
PDF
センサーデバイスのデータを使った Microsoft Azure Machine Learning 実装入門
Koichiro Sasaki
 
PPTX
.NET開発者のためのMicrosoft Learn入門
Akiyoshi Tsuchida
 
PPTX
Another Visual Studio - Visual Studio for Mac
Tomohiro Suzuki
 
PDF
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
史識 川原
 
技術選択とアーキテクトの役割 (要約版)
Toru Yamaguchi
 
LIGにおけるフロントエンドチーム構築
Hayashi Yuichi
 
WebエンジニアのReactNativeでの戦い方
PIXTA Inc.
 
エンタープライヤーのためのWeb Componentsハンズオン
Mitsuru Ogawa
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Issei Hiraoka
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
 
.NET Gadgeteerで組み込み開発の第一歩
Yoshitaka Seo
 
.Net GadgeteerでIoT
Yoshitaka Seo
 
Idea Hackathon at vFORUM 2019 Tokyo
Motonori Shindo
 
BigQuery で 150万円 使ったときの話
itkr
 
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Kaoru NAKAMURA
 
組織の問題も解決するアーキテクチャ BackendsForFrontends
PIXTA Inc.
 
【Code for向け】保育園・消火栓mapを作れるアプリを作ろう!
史識 川原
 
IoT 入門 ~ .NET Gadgeteer で簡単プログラミング
Yoshitaka Seo
 
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Atsushi Nakamura
 
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Fumiya Sakai
 
センサーデバイスのデータを使った Microsoft Azure Machine Learning 実装入門
Koichiro Sasaki
 
.NET開発者のためのMicrosoft Learn入門
Akiyoshi Tsuchida
 
Another Visual Studio - Visual Studio for Mac
Tomohiro Suzuki
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
史識 川原
 

Similar to React vtecx20171025 (20)

PDF
Web study20171007
Shinichiro Takezaki
 
PDF
Lt20190129
Shinichiro Takezaki
 
PDF
Bpstudy20180725
Shinichiro Takezaki
 
PPTX
JSUG 2018 BTC
kazukiotomori
 
PPTX
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
Saki Homma
 
PDF
Enterpriseapi20160210
Shinichiro Takezaki
 
PDF
LoRaWANとAzure IoT Hub接続ハンズオン
Tomokazu Kizawa
 
PDF
Builderscon Tokyo 2017
Shinichiro Takezaki
 
PDF
JavaからAkkaハンズオン
TIS Inc.
 
PDF
ITフォーラム2024 AITCセッション(2)
aitc_jp
 
PPTX
Unno Wataru Nutanix Advent Calendar 2018
Wataru Unno
 
KEY
Html5時代のクリエイターのあり方
Masakazu Muraoka
 
PDF
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
INTAGEGROUP
 
PDF
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Shotaro Suzuki
 
KEY
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 
PDF
ITフォーラム2024 AITCセッション(3)
aitc_jp
 
PDF
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
 
PDF
Ma8 Caravan 大阪 rev1
Keiji Kamebuchi
 
PPTX
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
 
PPTX
技術選択とアーキテクトの役割
Toru Yamaguchi
 
Web study20171007
Shinichiro Takezaki
 
Bpstudy20180725
Shinichiro Takezaki
 
JSUG 2018 BTC
kazukiotomori
 
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
Saki Homma
 
Enterpriseapi20160210
Shinichiro Takezaki
 
LoRaWANとAzure IoT Hub接続ハンズオン
Tomokazu Kizawa
 
Builderscon Tokyo 2017
Shinichiro Takezaki
 
JavaからAkkaハンズオン
TIS Inc.
 
ITフォーラム2024 AITCセッション(2)
aitc_jp
 
Unno Wataru Nutanix Advent Calendar 2018
Wataru Unno
 
Html5時代のクリエイターのあり方
Masakazu Muraoka
 
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
INTAGEGROUP
 
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Shotaro Suzuki
 
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 
ITフォーラム2024 AITCセッション(3)
aitc_jp
 
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
 
Ma8 Caravan 大阪 rev1
Keiji Kamebuchi
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
 
技術選択とアーキテクトの役割
Toru Yamaguchi
 
Ad

More from Shinichiro Takezaki (13)

PDF
Vtecx solution
Shinichiro Takezaki
 
PDF
Real techlt20180829
Shinichiro Takezaki
 
PPTX
11 29プレゼン資料
Shinichiro Takezaki
 
PDF
20171025 date picker説明資料
Shinichiro Takezaki
 
PDF
Vtecx20151216 2
Shinichiro Takezaki
 
PDF
Vtecx20151216
Shinichiro Takezaki
 
PDF
Vtecxlt20151201
Shinichiro Takezaki
 
PDF
Angularreflex20141210
Shinichiro Takezaki
 
PPTX
No nosql20130424
Shinichiro Takezaki
 
PDF
BPStudy20121221
Shinichiro Takezaki
 
PDF
Gaeja20121130
Shinichiro Takezaki
 
PDF
Reflex works20120818 1
Shinichiro Takezaki
 
PPT
Groovyコンファレンス
Shinichiro Takezaki
 
Vtecx solution
Shinichiro Takezaki
 
Real techlt20180829
Shinichiro Takezaki
 
11 29プレゼン資料
Shinichiro Takezaki
 
20171025 date picker説明資料
Shinichiro Takezaki
 
Vtecx20151216 2
Shinichiro Takezaki
 
Vtecx20151216
Shinichiro Takezaki
 
Vtecxlt20151201
Shinichiro Takezaki
 
Angularreflex20141210
Shinichiro Takezaki
 
No nosql20130424
Shinichiro Takezaki
 
BPStudy20121221
Shinichiro Takezaki
 
Gaeja20121130
Shinichiro Takezaki
 
Reflex works20120818 1
Shinichiro Takezaki
 
Groovyコンファレンス
Shinichiro Takezaki
 
Ad

React vtecx20171025

  • 1. Copyright © Virtual Technology, Inc React初⼼者勉強会とLT⼤会 2017/10/25 1
  • 2. Copyright © Virtual Technology, Inc ⽵嵜 伸⼀郎 (たけざき しんいちろう) twitter id:stakezaki (有)バーチャルテクノロジー代表取締役 2
  • 3. Copyright © Virtual Technology, Inc ビジョン ”もうフルスタックエンジニアはいらない。 HTMLとJSの知識さえあればWebサービスを 開発できる。 そのような世界を私たちは⽬指しています。” 3
  • 4. Copyright © Virtual Technology, Inc API以外の余計なことは考えたくない 4 適当に分散して勝⼿にスケールすることを期待 これが真のサーバレスではないのか!?
  • 5. Copyright © Virtual Technology, Inc React初⼼者勉強会とLT⼤会 5
  • 6. Copyright © Virtual Technology, Inc vte.cxアプリのセットアップ • Visual Studio Codeの導⼊ – https://code.visualstudio.com/download • Windowsの場合、git for windowsの導⼊ – https://git-for-windows.github.io/ • あとは、以下のqiitaの記事を⾒ながらセット アップ – http://qiita.com/stakezaki/items/0401d79d 392b081fb85e 6
  • 7. Copyright © Virtual Technology, Inc ⼿順 • nodeのインストール(⼊れていない⽅のみ) – https://nodejs.org/ja/ • gulpとflowのインストール – npm install -g gulp – npm install -g flow-bin • vtecxblankのclone – git clone https://github.com/reflexworks/vtecxblank.git • vscodeでプロジェクトを開きコンソールでビルド – npm install • vtecxにユーザ登録後サービスを作成してデプロイ – https://admin.1.vte.cx/login.html – gulp deploy xxxxxxxxx / gulp serve xxxxxxx 7
  • 8. Copyright © Virtual Technology, Inc もし、⼀覧にデータが表⽰されない場合 • データを再投⼊してみてください – gulp upload:data XXXXXXX 8
  • 9. Copyright © Virtual Technology, Inc バンドラ(Webpack)とタスクランナ(Gulp) 9 ES2015 React(JSX) Flow トランスパイル Css/Sass ビルド・ モジュール結合 JavaScript (ES5) ローカルPC サーバ(vte.cx) Import/ export モジュール結合 ② GulpによるDeploy ① Webpackによるビルド・バンドル
  • 10. Copyright © Virtual Technology, Inc Reactの概要 • ReactはFacebookが公開しているライブラ リでUIを効率的に構築することができる – HTMLに似たJSXのテンプレートを使うことで 直感的にUIを記述できる(仮想DOM) – コンポーネントの組み合わせで全体のアプリを 構築する 10
  • 11. Copyright © Virtual Technology, Inc Reactの最も効率的な学習⽅法 • Quick Startを⼀通り動作確認する – https://facebook.github.io/react/docs/hell o-world.html 11
  • 12. Copyright © Virtual Technology, 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 © Virtual Technology, 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 © Virtual Technology, Inc14 • URLをフォルダに⾒⽴てて⾃由に設定・追加可能 • リソースを様々なフォーマットに変換可能 • XML、JSON、MessagePack等などのデータ • HTMLやCSS、JavaScript、PDF、画像などの静的コンテンツ REST APIと直感的な規約
  • 15. Copyright © Virtual Technology, Inc エンドポイントURL(初期フォルダ) • setup/_settings/folderacls.xml 15 /_htmlを除くものが実際にアクセスできるエンドポイント
  • 16. Copyright © Virtual Technology, Inc vte.cx スキーマ • シンプルなシンタックス – 「項⽬名(型)= 正規表現」の形式で記述 – Indexを指定可能 – 正規表現でバリデーション • ソフトスキーマ – 項⽬の追加が可能 – 運⽤中でも変更可 • setup/_settings/template.xml 16
  • 17. Copyright © Virtual Technology, Inc ReactRouterの ハマリどころと解決策 17
  • 18. Copyright © Virtual Technology, Inc React Router 18 Link toで遷移先を定義 Route pathで呼び出すコンポーネントを定義 pathを指定しないとデフォルト表示
  • 19. Copyright © Virtual Technology, Inc 他の画⾯からの遷移 • this.props.history.push() – ただし、historyを親から渡さないといけない 19
  • 20. Copyright © Virtual Technology, Inc propsを渡せない問題の対応⽅法 20 • propsを渡すコンポーネントを別に作成
  • 21. Copyright © Virtual Technology, Inc リロードで404エラー回避 • BrowserRouterではなくHashRouterを使う 21
  • 22. Copyright © Virtual Technology, Inc 激速! React V16のサーバサイドレン ダリングでPDF帳票を作成する 22
  • 23. Copyright © Virtual Technology, Inc Reactで作る帳票システムの衝撃 • 詳しくはBlogで – https://t.co/WKirbmr06s 23
  • 24. Copyright © Virtual Technology, Inc 動的PDF帳票出⼒をReactで • ReactのSSRでHTMLを⽣成し、それをvte.cxのPDF 変換機能(reflex itext)を使ってPDFにする 24 Reflex iText (弊社プロダクト)
  • 25. Copyright © Virtual Technology, Inc サーバサイドJSとして実装する • /server/ssrdemo.js 25 Server Side RenderingでHTMLに HTMLをPDFに Styleの指定
  • 26. Copyright © Virtual Technology, Inc 実⾏⽅法 • https://{サービス}.1.vte.cx/s/ssrdemo • https://{サービス}.1.vte.cx/s/ssrdemo2 26
  • 27. Copyright © Virtual Technology, Inc HTMLタグ、Styleの書き⽅の詳細 • Reflex iText仕様(pageタグ、HTML互換タグ) – http://reflexworks.jp/documentation.html #reflexitext.html#G – http://reflexworks.jp/documentation.html #reflexitext.html#H 27
  • 28. Copyright © Virtual Technology, Inc 次回、11/29 やります! https://vtecx.connpass.com/event/70544/ 28 LTにぜひご応募ください
  • 29. Copyright © Virtual Technology, Inc29 [email protected] ご質問はこちらまで