SlideShare uma empresa Scribd logo
1 de 39
js初心者だった僕が武器を
手に入れるまで
~ Fall in Love with React ~
Yoshi
自己紹介
・名前: 吉井竜太
・地元: 島根県松江市(Rubyの発信地)
・Qiita (http://qiita.com/RyutaYoshi)
google翻訳みたいなものを自作してみた
(http://qiita.com/RyutaYoshi/items/9a809c0a03e02874fabb)
React.jsとRefluxJSを用いた快適view生活
(http://qiita.com/RyutaYoshi/items/267ea5d1eb0e2719eb7f)
本題に入る前に
最近の吉井の事情
1月の面談にて
1年振り返ってどうだっ
た?
もっと要望とかある?
もっと画面ビュンビュ
ンしたいので、
js勉強したいっす!!
あっ、丁度フロントエ
ンドやる人探してたし
挑戦してみる? 是非是非!
やりたいっす!!!
その月の全体会
フロントエンダー 吉井★ 誕
生
2月よりHomeup!にJoin
・フロント周りはReact使って実装するから勉強しておいてねー
・ブログ機能の開発からJoinしてもらうよー
・JJさん、タインと一緒に開発してねー
Reactとのふれあい開始
app.jsx見ればわかるんだな!
Reactとのふれあい開始
どれどれ...
Reactとのふれあい開始
カチッ...
Reactとのふれあい開始
!?!?!?!?!?!?!?!?!?!?!?!?
Reactとのふれあい開始
Reactチュートリアルと違うっ!!!
ブログ機能の実装開始
恐ろしい速度でタスクをこなすタイン
パソコンの前で固まる俺
エース級の2倍の速度でタスクをこなすタイン
タインとの出来の差に嘆く俺
そんなこんなでだいぶ苦しい思いをした2月
言い訳
・それまでにjsと戯れてこなかったからファイルの位置すら分からなかった
・Refluxというフレームワークを用いていた
・単に初心者だった
・タインがすごかった
2月の振り返り面談にて
よっしーは本当にフロント
エンドでやっていくの?
(斎藤さん……..!!
やりたいことをやるのは
大事だけど、もっと色々
やってみて決めたらいい
んじゃない?
..サーバーもしたいっす
フロントエンダー 吉井★ 解
任
現在はHomeup!でお世話になっています。
ここから本題
~ Fall in Love with React ~
・React.js (Facebook社製のOSS javascriptライブラリ)
Reactを用いて作られているサービス達
3つの特徴を持つライブラリ
1.JUST THE UI
・MVCで言うところの、Viewの部分に特化している
・コンポーネントを作るためだけ
・他の技術に依存しないので、割とどんなプロジェクトにも試験的に
導入できる
2. Virtual DOM
・DOMに変更が行われる時、変更前後の差分だけ元のHTMLに当てはめて
あげるのがスマート!(Virtual DOMの思想の原点)
・実際のDOMと対になる仮想的なDOMを生成する。ユーザーは仮想DOM
を操作して、その差分を実際のDOMに適応する実装のこと。
3. DATA FLOW
・データの変更に応じてUIの変更が行われる単方向のデータバインディング
3行で説明すると
1. ページ状態を保持しているプレーンなJSのオブジェクト」に
2. 「テンプレート的な関数」を作用させて、「仮想DOM」と呼ばれるDOMの
設計図を取り出し
3. その設計図を使って本物のDOMを構築する。
(引用元: Reactを使うとなぜjQueryが要らなくなるのか,
http://qiita.com/naruto/items/fdb61bc743395f8d8faf)
Reactはシンプルだけど奥が深い
(簡単に説明できない)
実装例(超簡単に)
1.初期状態を定義 (stateやpropsなど..)
2. 仮想DOMの実装 (jsxシンタックス)
3. 値変更に関するもろもろのメソッド実装
あとは、stateで保持しているデータを用いて
DBの更新すればOK
まとめ
・jQueryとかでDOMの操作がバンバン必要になりそうなサービスにはいいかも
・勉強するにあたって以下のサイトを参考にしました
ー React.jsとRefluxJSを用いた快適view生活
(http://qiita.com/RyutaYoshi/items/267ea5d1eb0e2719eb7f)
ー なぜ仮想DOMという概念が俺たちの心を震えさせるのか
(http://qiita.com/mizchi/items/4d25bc26def1719d52e6)
ー Reactを使うとなぜjQueryが要らなくなるのか
(http://qiita.com/naruto/items/fdb61bc743395f8d8faf)

Mais conteúdo relacionado

Mais procurados

自己紹介LT(公開版)
自己紹介LT(公開版)自己紹介LT(公開版)
自己紹介LT(公開版)Ken Muryoi
 
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartupGo Sueyoshi (a.k.a sue445)
 
Ruby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LTRuby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LTNISHIMOTO Keisuke
 
初めての公開Gem作り
初めての公開Gem作り初めての公開Gem作り
初めての公開Gem作りTomoe Sawai
 
Ruby関西 10才の誕生日に向けて
Ruby関西 10才の誕生日に向けてRuby関西 10才の誕生日に向けて
Ruby関西 10才の誕生日に向けてTomoya Kawanishi
 
いまさらツリー構造
いまさらツリー構造いまさらツリー構造
いまさらツリー構造Yuya Taki
 
わたしのRubyの楽しみかた
わたしのRubyの楽しみかたわたしのRubyの楽しみかた
わたしのRubyの楽しみかたYuusaku Iwamoto
 
よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさbonbon0605
 
よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさshinyaogasawara
 

Mais procurados (10)

自己紹介LT(公開版)
自己紹介LT(公開版)自己紹介LT(公開版)
自己紹介LT(公開版)
 
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
 
About playdocja
About playdocjaAbout playdocja
About playdocja
 
Ruby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LTRuby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LT
 
初めての公開Gem作り
初めての公開Gem作り初めての公開Gem作り
初めての公開Gem作り
 
Ruby関西 10才の誕生日に向けて
Ruby関西 10才の誕生日に向けてRuby関西 10才の誕生日に向けて
Ruby関西 10才の誕生日に向けて
 
いまさらツリー構造
いまさらツリー構造いまさらツリー構造
いまさらツリー構造
 
わたしのRubyの楽しみかた
わたしのRubyの楽しみかたわたしのRubyの楽しみかた
わたしのRubyの楽しみかた
 
よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさ
 
よちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさよちよち.rbで知ったコミュニティの素晴らしさ
よちよち.rbで知ったコミュニティの素晴らしさ
 

Destaque

My sql viewに救われる(かもしれない)
My sql viewに救われる(かもしれない)My sql viewに救われる(かもしれない)
My sql viewに救われる(かもしれない)basicinc_dev
 
Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応basicinc_dev
 
悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regexbasicinc_dev
 
構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れるbasicinc_dev
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428basicinc_dev
 
インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!basicinc_dev
 
Have fun-with-ruby
Have fun-with-rubyHave fun-with-ruby
Have fun-with-rubybasicinc_dev
 
Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたbasicinc_dev
 
マーケティング視点でのデザイン
マーケティング視点でのデザインマーケティング視点でのデザイン
マーケティング視点でのデザインbasicinc_dev
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜbasicinc_dev
 
Ruby under the hood
Ruby   under the hoodRuby   under the hood
Ruby under the hoodbasicinc_dev
 
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜basicinc_dev
 
画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvasbasicinc_dev
 
Mini magickでの画像合成
Mini magickでの画像合成Mini magickでの画像合成
Mini magickでの画像合成Yoshiki Kobayashi
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものbasicinc_dev
 
メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策basicinc_dev
 

Destaque (20)

My sql viewに救われる(かもしれない)
My sql viewに救われる(かもしれない)My sql viewに救われる(かもしれない)
My sql viewに救われる(かもしれない)
 
Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応
 
悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex
 
構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428
 
Yamakado 20160428
Yamakado 20160428Yamakado 20160428
Yamakado 20160428
 
インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!
 
無名関数のすすめ
無名関数のすすめ無名関数のすすめ
無名関数のすすめ
 
Have fun-with-ruby
Have fun-with-rubyHave fun-with-ruby
Have fun-with-ruby
 
Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみた
 
マーケティング視点でのデザイン
マーケティング視点でのデザインマーケティング視点でのデザイン
マーケティング視点でのデザイン
 
Zaru 20160428
Zaru 20160428Zaru 20160428
Zaru 20160428
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
 
Ruby under the hood
Ruby   under the hoodRuby   under the hood
Ruby under the hood
 
turbolinks攻略
turbolinks攻略turbolinks攻略
turbolinks攻略
 
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
 
画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas
 
Mini magickでの画像合成
Mini magickでの画像合成Mini magickでの画像合成
Mini magickでの画像合成
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たもの
 
メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策
 

Último

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~