Copyright © Virtual Technology, Inc
React勉強会とLT⼤会
2017/11/29
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, Inc
vte.cx
14
Copyright © Virtual Technology, Inc15
• URLをフォルダに⾒⽴てて⾃由に設定・追加可能
• リソースを様々なフォーマットに変換可能
• XML、JSON、MessagePack等などのデータ
• HTMLやCSS、JavaScript、PDF、画像などの静的コンテンツ
REST APIと直感的な規約
Copyright © Virtual Technology, Inc16
Copyright © Virtual Technology, Inc17
Copyright © Virtual Technology, Inc18
Copyright © Virtual Technology, Inc19
Copyright © Virtual Technology, Inc
エンドポイントURL(初期フォルダ)
• setup/_settings/folderacls.xml
20
/_htmlを除くものが実際にアクセスできるエンドポイント
Copyright © Virtual Technology, Inc
vte.cx スキーマ
• シンプルなシンタックス
– 「項⽬名(型)= 正規表現」の形式で記述
– Indexを指定可能
– 正規表現でバリデーション
• ソフトスキーマ
– 項⽬の追加が可能
– 運⽤中でも変更可
• setup/_settings/template.xml
21
Copyright © Virtual Technology, Inc
以下の2つの記事もぜひご覧ください
• APIを設計するのにswaggerはいらない
– https://t.co/iiV0fxKmft
• アクセス制御とエラー画⾯表⽰
– https://t.co/3Ze0RIeBOJ
22
API設計とアクセス制御
Copyright © Virtual Technology, Inc23
support@virtual-tech.net
ご質問はこちらまで

React vtecx20171129

  • 1.
    Copyright © VirtualTechnology, Inc React勉強会とLT⼤会 2017/11/29 1
  • 2.
    Copyright © VirtualTechnology, Inc ⽵嵜 伸⼀郎 (たけざき しんいちろう) twitter id:stakezaki (有)バーチャルテクノロジー代表取締役 2
  • 3.
    Copyright © VirtualTechnology, Inc ビジョン ”もうフルスタックエンジニアはいらない。 HTMLとJSの知識さえあればWebサービスを 開発できる。 そのような世界を私たちは⽬指しています。” 3
  • 4.
    Copyright © VirtualTechnology, Inc API以外の余計なことは考えたくない 4 適当に分散して勝⼿にスケールすることを期待 これが真のサーバレスではないのか!?
  • 5.
    Copyright © VirtualTechnology, Inc React勉強会とLT⼤会 5
  • 6.
    Copyright © VirtualTechnology, 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 © VirtualTechnology, 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 © VirtualTechnology, Inc もし、⼀覧にデータが表⽰されない場合 • データを再投⼊してみてください – gulp upload:data XXXXXXX 8
  • 9.
    Copyright © VirtualTechnology, Inc バンドラ(Webpack)とタスクランナ(Gulp) 9 ES2015 React(JSX) Flow トランスパイル Css/Sass ビルド・ モジュール結合 JavaScript (ES5) ローカルPC サーバ(vte.cx) Import/ export モジュール結合 ② GulpによるDeploy ① Webpackによるビルド・バンドル
  • 10.
    Copyright © VirtualTechnology, Inc Reactの概要 • ReactはFacebookが公開しているライブラ リでUIを効率的に構築することができる – HTMLに似たJSXのテンプレートを使うことで 直感的にUIを記述できる(仮想DOM) – コンポーネントの組み合わせで全体のアプリを 構築する 10
  • 11.
    Copyright © VirtualTechnology, Inc Reactの最も効率的な学習⽅法 • Quick Startを⼀通り動作確認する – https://facebook.github.io/react/docs/hell o-world.html 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 vte.cx 14
  • 15.
    Copyright © VirtualTechnology, Inc15 • URLをフォルダに⾒⽴てて⾃由に設定・追加可能 • リソースを様々なフォーマットに変換可能 • XML、JSON、MessagePack等などのデータ • HTMLやCSS、JavaScript、PDF、画像などの静的コンテンツ REST APIと直感的な規約
  • 16.
    Copyright © VirtualTechnology, Inc16
  • 17.
    Copyright © VirtualTechnology, Inc17
  • 18.
    Copyright © VirtualTechnology, Inc18
  • 19.
    Copyright © VirtualTechnology, Inc19
  • 20.
    Copyright © VirtualTechnology, Inc エンドポイントURL(初期フォルダ) • setup/_settings/folderacls.xml 20 /_htmlを除くものが実際にアクセスできるエンドポイント
  • 21.
    Copyright © VirtualTechnology, Inc vte.cx スキーマ • シンプルなシンタックス – 「項⽬名(型)= 正規表現」の形式で記述 – Indexを指定可能 – 正規表現でバリデーション • ソフトスキーマ – 項⽬の追加が可能 – 運⽤中でも変更可 • setup/_settings/template.xml 21
  • 22.
    Copyright © VirtualTechnology, Inc 以下の2つの記事もぜひご覧ください • APIを設計するのにswaggerはいらない – https://t.co/iiV0fxKmft • アクセス制御とエラー画⾯表⽰ – https://t.co/3Ze0RIeBOJ 22 API設計とアクセス制御
  • 23.
    Copyright © VirtualTechnology, Inc23 support@virtual-tech.net ご質問はこちらまで