Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ReactとFluxのこと
Search
geta6
April 26, 2015
Programming
65k
166
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ReactとFluxのこと
http://inside.pixiv.net/entry/2015/04/27/170944
geta6
April 26, 2015
More Decks by geta6
See All by geta6
mastodonのnodeのはなし
geta6
0
3.3k
pixiv SketchのSSRの話
geta6
10
4.5k
What is CoffeeScript
geta6
8
960
Other Decks in Programming
See All in Programming
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
360
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
120
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
200
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
Railsバージョンを4倍にした話
optim
0
290
golang-bob.pdf
iwatsukayura
0
130
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
How to Ace a Technical Interview
jacobian
280
24k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
Practical Orchestrator
shlominoach
192
12k
Done Done
chrislema
187
17k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Transcript
React Flux
HFUB SFBDUͱqVYʹ͍ͭͯษڧͯ͠Δ
HFUB ࡶʹ·ͱΊͯΈΔ
None
3FBDU w GBDFCPPL͕࡞ͬͨ+BWB4DSJQUͷϏϡʔ༻ϥΠϒϥϦ w ϑϨʔϜϫʔΫͰͳ͍ʢॏཁʣ w ΞʔΩςΫνϟΛ੍͢ΔͷͰͳ͍ɺϏϡʔ༻ͷ ίϯϙʔωϯτͱͯ͠୯ಠͰར༻͢Δ͜ͱ͕Ͱ͖Δ w .PEFMͱ$PMMFDUJPO#BDLCPOFɺ7JFX͚ͩ3FBDUɺ
ͱ͍͏ετʔϦʔ͋ΓಘΔ w αʔόͰΫϥΠΞϯτͰར༻Մೳ
#FGPSF3FBDU
TUPSZ { items: ['foo'] } <ul id='items'> <li>foo</li> </ul> {
items: ['foo', 'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> w Ϟσϧͷߏʹैͬͯ%0.Λग़ྗ͢ΔγʔϯΛߟ͑Δ
K2VFSZ $('#item').append('<li>' + _.last(items) + '</li>'); { items: ['foo'] }
<ul id='items'> <li>foo</li> </ul> { items: ['foo', 'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul>
{ items: ['foo'] } <ul id='items'> <li>foo</li> </ul> { items:
['foo', 'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> K2VFSZ $('#item').append('<li>' + _.last(items) + '</li>'); HTML͕ೖͬͯདྷΔՄೳੑ͕͋ΔͷͰ XSSϦεΫ͕..
K2VFSZ $('#item').append('<li>' + _.escape(_.last(items)) + '</li>'); { items: ['foo'] }
<ul id='items'> <li>foo</li> </ul> { items: ['foo', '<i>bar</i>'] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul>
{ items: ['foo'] } <ul id='items'> <li>foo</li> </ul> { items:
['foo', '<i>bar</i>'] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul> K2VFSZ $('#item').append('<li>' + _.escape(_.last(items)) + '</li>'); ςϯϓϨʔτ͍ͨ͠ͷͰ ݅Ͱม͑ͯΒ͍͍ͬͯͰ͔͢.. APIมΘΓ·͢..
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') val.b
= _.escape(val.b); $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'tmpl', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul>
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') val.b
= _.escape(val.b); $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'tmpl', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul> ಛఆ݅ͷ࣌inputͰฤूͰ͖ΔΑ͏ʹ ͯ͠Β͍͍ͨΜͰ͕͍͍͢Ͱ͔͢..
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul>
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> ࠷ऴߦ͡Όͳ్ͯ͘தʹ৽σʔλ͕ ૠೖ͞ΕΔͱόάΓ·͢..
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> ࠷ऴߦ͡Όͳ్ͯ͘தʹ৽σʔλ͕ ૠೖ͞ΕΔͱόάΓ·͢.. ͷ༧ײ #7299716
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> ్தʹૠೖͱ͔ϋʔυίʔσΟϯάʹͳΓͦ͏.. ͜ΕҎ্ཁٻ͕૿͑ΔͱରԠͰ͖ͳͦ͏.. Ҿ͖ܧ͍ͩΒෛ࠴ʹͳΓͦ͏.. ϑϨʔϜϫʔΫೖΕΕ͍͍ͱฉ͍ͨͷͰ ͱΓ͋͑ͣBackboneΛೖΕͯΈΔ
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li><span>foo</span></li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); http://goo.gl/aiVQks
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); ͳɹ͕ɹ͍ ͜ͷྫͩͱModel୯ಠ͕ͩ Model͕ෳʹͳΔͱ ͞Βʹάονϟάνϟʹͳ͍ͬͯ͘ http://goo.gl/aiVQks
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); ͳɹ͕ɹ͍ ͜ͷྫͩͱModel୯ಠ͕ͩɺ Model͕ෳʹͳͬͨ࣌ ͞Βʹάονϟάνϟʹͳ͍ͬͯ͘
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); ͳɹ͕ɹ͍ ͜ͷྫͩͱModel୯ಠ͕ͩɺ Model͕ෳʹͳͬͨ࣌ ͞Βʹάονϟάνϟʹͳ͍ͬͯ͘ #7299716
FWJM w ͳʹ͕ѱ͍ͷ͔
FWJM w ϨϯμϦϯάίετΛؾʹͯ͠ભҠΛॻ͔ͳ͍ͱ͍͚ͳ ͍ͷ͕ѱ͍ w BQQFOEͱ͔͊͞
FWJM w ຖճ৽͘͠%0.࡞্ͬͯॻ͖͢Είʔυͱ%0.ͷঢ় ଶʹဃ͕ແ͘ͳΔ w Ͱͦ͏͢ΔͱJOQVUͷೖྗςΩετͳͲɺҰ࣌తͳ ঢ়ଶ͕ഁغ͞Εͯ͠·͏ w ྻ͕ͭͱ͔ͳΒ͍͍͚ͲUVNCMSͷμογϡϘʔυ Έͨ͘ݸͱ͔ʹͳΔͱϨϯμϦϯάίετͰٿ
͕Ϡό͍
FWJM w ϦΞϧλΠϜόΠϯσΟϯάʹ͠ΖԿʹ͠Ζɺશ෦Λ· Δͬͱॻ͖͑ΔҎ֎ͷख๏ΛͱΔͳΒɺσʔλͷભҠ ʹਵ͢ΔॲཧΛॻ͔͟ΔΛಘͳ͍ w ࠷ॳͷϨϯμϦϯά͔Βεςοϓ͕ਐΊਐΉ΄Ͳɺίʔ υͱ%0.ͷဃ͕ਐߦ͍ͯ͘͠
FWJM w ਓԿ͔ͷ٘ਜ਼ͳ͠ʹԿಘΔࣄͳͲͰ͖ͳ͍ w KTѱຐͱͷܖͩͬͨ
FWJM w ਓԿ͔ͷ٘ਜ਼ͳ͠ʹԿಘΔࣄͳͲͰ͖ͳ͍ w KTѱຐͱͷܖͩͬͨ
FWJM w ਓԿ͔ͷ٘ਜ਼ͳ͠ʹԿಘΔࣄͳͲͰ͖ͳ͍ w KTѱຐͱͷܖͩͬͨ
3FBDUͷར w ʮຖճ৽͘͠%0.࡞্ͬͯॻ͖͢Είʔυͱ%0.ͷ ঢ়ଶʹဃ͕ແ͘ͳΔʯ w ࡶʹݴ͏ͱɺ͜ΕˢΛݱ࣮తͳ࣮ʹམͱ͠ࠐΜͩͷ ͕3FBDU w ͜ΕΛ࣮ݱ͢ΔͨΊʹ7JSUVBM%0.ͱ͍͏ΈΛͬ ͯͨ
7JSUVBM%0. w ͜Ε·ͰϑϩϯτͰسආ͞Ε͖߽ͯͨతϓϩάϥϛϯάύϥμΠϜͷ ݱ࣮తͳղͷҰ͕ͭ3FBDU w σʔλߏʹରԠ͢Δͷ%0.Λߏங͢Δϝιου͕͋Γɺͦͷ %0.ͱݱࡏͷ%0.ͷEJGGΛऔͬͯࠩߋ৽͢Δ { items: ['foo',
'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> { items: ['foo', 'baz'] } <ul id='items'> <li>foo</li> <li>baz</li> </ul> EJGG <ul id='items'> <li>foo</li> <li>baz</li> </ul>
7JSUVBM%0. w EJGGΛऔΔͨΊʹੜ͞ΕΔ%0.ͷ͜ͱΛ7JSUVBM%0.ͱ͍͏ɺࣗͰॻ ͘ͷ͜͏͍͏σʔλͳΒ͜͏ͳΔͱ͍͏ϝιουͷΈ w ભҠʹؔ͢ΔॲཧΛॻ͘ඞཁ͕ແ͍ɺৗʹʮ͜͏ͳͬͯ΄͍͠ʯͱ͍͏ %0.Λు͖ग़͠ଓ͚ɺݱࡏͷ%0.ͦͷ%0.ʹ͔ͬͯࣗಈͰભҠ͢Δ { items: ['foo',
'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> { items: ['foo', 'baz'] } EJGG <ul id='items'> <li>foo</li> <li>baz</li> </ul> 7JSUVBM%0. <ul id='items'> <li>foo</li> <li>baz</li> </ul>
7JSUVBM%0. w BUUSJCVUF͕มΘΕมΘΔͷBUUSJCVUF͚ͩɺCPEZ͕มΘΕมΘΔ ͷCPEZ͚ͩ w 7JFXͰ࣮͠ͳ͚Ε͍͚ͳ͍ͷʮJUFNTΛΠςϨʔτͯ͠MJTUΛ࡞Δ ςϯϓϨʔτʯ͚ͩʹͳΔ { items: ['foo',
'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> { items: ['foo', 'baz'] } EJGG <ul id='items'> <li>foo</li> <li>baz</li> </ul> <ul id='items'> <li>foo</li> <li>baz</li> </ul> 7JSUVBM%0.
3FBDUͷར w ίϯϙʔωϯτϕʔεͰ%0.ΛΈཱͯΔ͜ͱ͕Ͱ͖Δ w ࡶʹݴ͏ͱػೳΛแͨ͠ಠࣗλά͕࡞ΕΔ w 8FC$PNQPOFOUT͕ࢦ͍ͯͨ͠ੈքΛ࣮ϨϕϧͰ࣮ ݱͰ͖Δ
3FBDUͷར w KTY͏ͱΑΓ࣮ײͰ͖Δ σΟʔφϯτΧࣾͷ͡Όͳ͍΄͏ w KTYίϯύΠϧͨ͠ΒKTʹͳΔͭͰ͢ɺ$PGGFFΈ͍ͨͳΜ ͩͱࢥ͍ͬͯͩ͘͞ var Hello
= React.createClass({ render() { return React.DOM.div(null, `Hello ${this.props.name}`); } }) var Hello = React.createClass({ render() { return <div>Hello {this.props.name}</div>; } })
3FBDU w ྫ͑ɺྻ͕͞ΕͨΒMJTUΛউखʹ࡞Δλάͱ͔ <Iterate items={['foo', 'bar']} /> <ul> <li>foo</li> <li>bar</li>
</ul>
3FBDU w ྫ͑ɺݕࡧ݁ՌΛΠςϨʔτͨ͠Β֤ཁૉΛϨϯμϦϯ άͯ͠ग़ͯ͘͠ΕΔͱ͔ w ͏·͘Γ͚ΕɺΛదʹࢄ͢Δ͜ͱ͕Ͱ͖Δ <section className='results'> {this.state.results.map(item =>
{ return <Result item={item} />; })} </section>
3FBDU w ྫ͑ɺޙ͔Β͜͜ΛJODSFNFOUͨ͘͠ ͳͬͨͱ͢Δ <section className='results'> {this.state.results.map(item => { return
<Result item={item} />; })} </section> #49974740
3FBDU w ͜͏͢Δ͚ͩͰউखʹࠩߋ৽ͯ͘͠ΕΔΠϝʔδ Ͱ͢ ࣮ࡍʹTFUUFSΛ௨͢ w ߋ৽͞ΕΔͷதͷࣈͷΈɺ%0.มߋ͞Εͳ͍ results[1].fav_count +=
1 --- <section className='results'> {this.state.results.map(item => { return <Result item={item} />; })} </section> #49974740
None
qVY w qVY͕Ͳ͏͍͏ΞʔΩςΫνϟ͔ɺͷલʹ
qVY w ʮqVYΛΠϯετʔϧ͢ΕϨʔϧʹΕΔʯ w ʮqVYશʹ৽͍֓͠೦ɺ࠷ߴʯ w ͜Εӕ
qVY w qVYΞʔΩςΫνϟͷ໊લ w ͨͩͷPCTFSWFSύλʔϯ w 3FBDUͱqVYૄ݁߹ɺ3FBDU Λޮతʹ׆༻͢ΔΞʔΩς Ϋνϟͱͯࣔ͠͞Ε͚ͨͩ w
qVYͷ࠷༏Ε͍ͯΔɺ ӈਤͷΑ͏ͳύλʔϯʹqVY ͱ͍͏໊લΛ͚ͭͨॴ
GBGSPUTLJFT w ਓؒݹདྷ͔Βحոͳݱʹ໊લΛ ͚Δ͜ͱͰࣄΛઢҾ͖͠ɺίϛϡχ έʔγϣϯίετΛݮΒͨ͠Γɺ ͷΓ͚ΛߦͬͨΓ͖ͯͨ͠ w ϑΝϑϩπΩʔζʮͦͷʹ͋Δ ͣͷͳ͍ͷ ڕͱ͔
͕߱ͬͯ͘Δʯ ݱͷ͜ͱ w ໊લΛ͚͓͚ͭͯɺ͍͖ͳΓۭ͔Β େྔͷڕ͕߱Γ͍Ͱʮ͋͊ɺ͋Ε Ͷʯͱݴ͑ΔɺਆʹفͬͯੜᩴΛ๋͛ Δ͖͔Ͳ͏͔ఆͰ͖Δɺӈԟࠨԟ ͤͣʹࡁΉɺจݙΛ୧Δ͜ͱ༰қ
qVY w qVYͱ͍͏໊લ͕͋Δ͚ͩͰɺઃܭ͕ͲΕ͚ͩqVY͔ɺ࣮ ͲΕ͚ͩqVY͔Β֎Ε͍ͯΔ͔ɺςετͲ͏ॻ͔Ε ͍ͯΔ͖͔ɺͱ͔Λ؆қʹೝࣝͰ͖ΔΑ͏ʹͳΔ w ϑΝδʔͳਓؒͷͰͪΌΜͱΛೝࣝͰ͖Δɺจ຺ ͷᴥᴪ͕ੜ·Εʹ͍͘ w υΩϡϝϯτաڈͷ࣭ʹͨΓқ͍
w ϨϏϡʔ͍͢͠ɺΞʔΩςΫνϟʹैΘͳ͍1VMM 3FRVFTUΛॠࡴͰ͖Δ
ZBIPPqVYJCMFʹ13ग़ͨ͠ w Θͨ͠ʮ͜ͷϝιουɺଞͩͱฦΓ͋Δͷʹ7JFXͰ ͚ͬͨ࣌ͩฦΓ͕ແ͍ͷ͓͔͘͠ͳ͍ʁʯ w :ࣾʮ7JFXͰͦΕฦ͢ͱqVY͡Όͳ͘ͳΔ͔Βʯ w ॠࡴ͞Εͨ
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO QBZMPBE "1* 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <>
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO QBZMPBE "1* 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <> #18558660
qVY w σʔλͷϑϩʔৗʹઈରඞͣҰํ w ྫ͑ɺ"DUJPOҎ֎͕)551ϦΫΤετΛൃߦͯࣗ͠ Λߋ৽͢Δͷμϝ Тဂ ʢGBWͱ͔Ͱʣ w Ͳ͏͍ͬͨϑϩʔͰσʔλ͕͖߱ͬͯͯɺͲ͏͍ͬͨ݁Ռ
͕ग़͔ͨɺೝࣝͷΓ͚͕ͱָͯ w ͜ͷߏͷ͍͍ͱ͜ΖPCTFSWFSύλʔϯͳײ͡ͳͷͰద ٓάά͍ͬͯͩ͘͞ɺ͜ͷεϥΠυͰओʹ"DUJPOͱ͔qVY ͰΘΕΔ༻ޠΛઆ໌͠·͢
qVY w "DUJPO͕ελʔτɺ7JFX͕ΰʔϧ w "DUJPOʹΑΔ4UPSFͷߋ৽Λݕ͠ɺ7JFXࣗͷΞο ϓσʔτ͕ߦΘΕΔ
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX "1* VQEBUF VQEBUF USJHHFS σʔλΛૹ
<&WFOU&NJUUFS> ΞΫηεɾJOQVUͳͲͷ ೖྗΛड͚ͯσʔλΛߏங σʔλΛஷΊΔ <#BDLCPOF$PMMFDUJPO> σʔλΛදݱ <3FBDU> 45"35 (0"- )551"DDFTT "DUJPO QBZMPBE 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <>
qVY w 7JFX"DUJPOΛൃߦ͠ɺϑϩʔΛτϦΨʔͰ͖Δ
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX BDUJPO "1* 3&45"35 <ϢʔβʔΠϕϯτ> ϘλϯͷΫϦοΫ
ϖʔδͷΦʔτϦϩʔυ "DUJPO QBZMPBE 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <> ͖ͬ͞ͷਤΔ
qVY w ͜ͷΞʔΩςΫνϟͷ໊લ͕qVYɺGBDFCPPLqVYϦ ϑΝϨϯε࣮ɺ%JTQBUDIFSͷίʔυ͕ͪΐΖͬͱॻ͍ ͯ͋Δ͚ͩ w qVYJCMFͱ͔BSEBͱ͔SFqVYͱ͔ɺqVYΞʔΩςΫ νϟͷ࣮ࢁ͋Δ w ݱࡏաظͰελϯμʔυ͕ଘࡏ͠ͳ͍ɺΈΜͳԶ͕
ߟ͑ͨ࠷ڧͷqVY࣮Λ࡞͍ͬͯΔઓࠃཚੈ
qVY w ϥΠϒϥϦؤுͬͯબఆ͢Δ͔ࣗ࡞͢ΔʢࢲαʔόαΠυαϙʔ τ͕ॆ࣮͍ͯ͠ΔͷͰqVYJCMFΛͬͯΔʣ w αʔόαΠυ͕OPEFͱ͔KTධՁΤϯδϯΛੵΜͰΔݴޠͰ͋Εɺ࠷ ॳͷϑϩʔΛճͯ͠7JFXΛߏஙͨ͠ঢ়ଶͰϢʔβʹฦͤΔ w "DUJPO݅ذͰαʔόͳΒ%#ϦΫΤετɺΫϥΠΞϯτݺͼ ग़͠ͳΒ)551ϦΫΤετ͢Δͱ͔ॻ͍͓͚͍͍ͯ
w όοΫΤϯυʹ"1*Λ࣋ͭܗࣜͳΒTVQFSBHFOUͱ͔Ͱ)551ϝιο υΛαʔόʔͱΫϥΠΞϯτͰڞ௨Խ͓͚͍͍ͯ͠
qVY w ͔͜͜ΒޙͭͷίϯϙʔωϯτΛݸʑʹઆ໌͠·͢
"DUJPO "
"DUJPO "DUJPO QBZMPBE )551 +40/ \LFZ WBM^ "DUJPO %JTQBUDIFS "1*
VQEBUF 0CKFDU \LFZ WBM^ %JTQBUDIFS τϦΨʔ͞ΕͨΠϕϯτʹԠͯ͡)551͠ ͨΓͯ͠σʔλΛߏஙɺߏஙͨ͠σʔλ Λ%JTQBUDIFS͢ "1*͔Β σʔλΛऔΔ σʔλΛ ૹ͢Δ 0CKFDU \LFZ WBM^ "
"DUJPO "DUJPO QBZMPBE )551 +40/ \LFZ WBM^ "DUJPO %JTQBUDIFS "1*
VQEBUF 0CKFDU \LFZ WBM^ %JTQBUDIFS λΠϜϥΠϯͷ࣮ͩͱॳճΞΫηεϖʔ δΛ࠷Լ෦·ͰεΫϩʔϧͨ࣌͠ʹɺ"1* ʹNBY@JEͱ͔͚ͭͯ࣍ͷΞΠςϜΛ͍ ߹Θͤͯ%JTQBUDIFS͢ײ͡ "1*͔Β σʔλΛऔΔ σʔλΛ ૹ͢Δ 0CKFDU \LFZ WBM^ "
%JTQBUDIFS %
"DUJPO %JTQBUDIFS 4UPSF VQEBUF VQEBUF σʔλΛ ૹ͢Δ σʔλΛ ஷΊΔ %JTQBUDIFS
4UPSF 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ "DUJPO͔Β໋ྩͱσʔλ͕དྷΔͷͰ໋ྩʹ ߹ΘͤͨૹઌσʔλΛ৴͢Δɺ࣮ ͨͩͷ&WFOU&NJUUFSͰΑ͍ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %
"DUJPO %JTQBUDIFS 4UPSF VQEBUF VQEBUF %JTQBUDIFS 4UPSF 4UPSF 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %JTQBUDIFS 4UPSF σʔλΛ ૹ͢Δ σʔλΛ ஷΊΔ ෳͷ4UPSFσʔλΛૹ͢ΔՄೳੑ͕͋Δɺ %JTQBUDIFSͷଘࡏʹΑΓ"DUJPOૹઌΛؾ ʹ͠ͳͯ͘Α͘ͳΔ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %
"DUJPO %JTQBUDIFS 4UPSF VQEBUF VQEBUF %JTQBUDIFS 4UPSF 4UPSF 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %JTQBUDIFS 4UPSF σʔλΛ ૹ͢Δ σʔλΛ ஷΊΔ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ % λΠϜϥΠϯͷ࣮ͩͱɺड৴ͨ͠σʔλΛϗʔϜ ͷλΠϜϥΠϯ FH ͱϢʔβ͝ͱͷλΠϜϥΠ ϯ FHHFUB ͦΕͧΕૹ͓ͯ͘͠ײ͡
4UPSF 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> %JTQBUDIFS͔Β͞ΕͨσʔλΛ໋ྩʹ߹ Θͤͯૢ࡞͢Δ ෦ͷ࣮ੜͷ0CKFDU͔ɺͨͩͷ #BDLCPOF$PMMFDUJPOͰΑ͍ JEͰϢχʔΫ ʹͨ͠ΓDPNQBSBUPS͚ͭͨΓͰ͖ΔͷͰ 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> 4UPSFෳͷ7JFX σʔλΛૹ͢ΔՄೳੑ͕͋Δ 7JFX 4UPSFE0CKFDU <> 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> %JTQBUDI͞Εͨ࣌Ͱ σʔλΛૹ͠ͳ͍ࣄ͋Δ ϚϨ 7JFX 4UPSFE0CKFDU <> 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> 4UPSFJOQVUͱPVUQVUͷΠϯλʔϑΣʔεΛ͍࣋ͬͯ Δɺྫ͑JOQVUͰ#BDLCPOF$PMMFDUJPOBEEͯ͠ɺ PVUQVUͰUP+40/ ͯ͠σʔλΛు͖ग़͢ײ͡ $PMMFDUJPOͷΠϯελϯεӅณ͞ΕͯΔͱ͍͍ 4 #BDLCPOF$PMMFDUJPO
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> λΠϜϥΠϯͷ࣮ͩͱɺड৴ͨ͠σʔλΛϗʔϜͷλΠ ϜϥΠϯ FH ͱϢʔβ͝ͱͷλΠϜϥΠϯ FHHFUB Λผͷ4UPSF͕࣋ͬͯͨΓɺ4UPSFͷ෦ͰΠϯελϯεΛ ผʑʹཧͯ͠JOQVUͰৼΓ͚ͨΓ 4 #BDLCPOF$PMMFDUJPO
7 7JFX
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 4UPSF͔Β͞ΕͨσʔλΛදݱ͢Δ ࣮3FBDU͕͓͢͢Ί͞Ε͍ͯΔ
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 4UPSF͕ߋ৽͞ΕΔͱɺσʔλ͕7JFXʹͬͯ͘Δ 3FBDUͦͷσʔλʹै͍%0.Λࠩߋ৽͢Δ
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 4UPSFΛ࣋ͨͳ͍߹͋Δ
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 7JFX4UPSFΛॻ͖͍͚͑ͯͳ͍ 7JFXΠϕϯτΛࢹ͢Δ͚ͩɺ σʔλϑϩʔৗʹ4UPSF͔Β7JFX ❌
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> ෳͷ4UPSF͔Β σʔλΛड͚औΔՄೳੑ͕͋Δ 4UPSF 4UPSFE0CKFDU <>
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 7JFXൃੜͨ͠ΠϕϯτʹԠͯ͡ "DUJPOΛൃߦ͢Δ͜ͱ͕Ͱ͖Δ
JOQVUDIBOHFE OFYUQBHF 7JFX "DUJPO QBZMPBE "DUJPO
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 "DUJPOΛൃߦ͠ͳ͍߹͋Δ 7JFX
"DUJPO QBZMPBE "DUJPO
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 ෳͷ"DUJPOΛऔΓѻ͏߹͋Δ 7JFX
"DUJPO QBZMPBE "DUJPO "DUJPO QBZMPBE "DUJPO
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 7JFX4UPSF͔Β͞ΕͨσʔλΛ ࣗͰߋ৽͍͚ͯ͠ͳ͍
7JFX "DUJPO QBZMPBE "DUJPO ❌
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSFͷใΛߋ৽͢Δ߹"DUJPOΛൃߦ͠ %JTQBUDIFSܦ༝Ͱ4UPSFΛߋ৽͠มߋ௨ΛडऔΔ
7JFX "DUJPO QBZMPBE 4UPSF
ͬͯΈͯ w ઃܭͷ͜ͱΛ͍͢͝ߟ͑Δɺͱʹ͔͘ߟ͑Δ w σʔλߏͷࣄ͚ͩߟ͑ͯΔɺͲ͏ͬͯೖख͢Δ͔ɺ Ͳ͏ͬͯฤू͢Δ͔ɺͲ͏͍͏ॱ൪Ͱมߋ͢Δ͔ w %0.ͷࣄຆͲߟ͑ͳ͍ɺਖ਼͍͠σʔλਖ਼͍͠%0. ʹͳΔӡ໋ʹ͋ΔͷͰ΄ͬͱ͍͍͍ͯ w
खΊͬͪΌݮΔ w Ͱिؒલͷࣗͷίʔυ͕ಡΊΔ
ͬͯΈͯ w 3FBDU͕ݡ͍ɺಛʹ8"3/ϝοηʔδ w ͪΐͬͱҳ͢Δͱ͙͢ܯࠂग़ͯ͘͠ΕΔ w ʮ͜͜ɺ͜ͷϓϩύςΟΓͳ͍ΑͶʁʯ w ʮαʔόͱΫϥΠΞϯτͰظͯ͠Δ%0.ҧ͘Ͷʁʯ
ͬͯΈͯ w υΩϡϝϯτ͕ॆ࣮ͯ͠ΔɺεϥΠυهࣄଟ͍ w શ෦ॻ͍ͯ͋ΔɺಡΊΘ͔Δ
Ҏ্