Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reactのミニマム理解 〜UI = f(data)(state)+sideEffect〜

Yoda Keisuke
February 18, 2024
100

Reactのミニマム理解 〜UI = f(data)(state)+sideEffect〜

Yoda Keisuke

February 18, 2024
Tweet

Transcript

  1. ٕज़ऀࢹ఺ᶃݱੈ୅ͷΞϓϦ։ൃͰ࢖༻཰͕ߴ͘धཁ༗Γ 
 ɹɹɹɹɹᶄ࣍ੈ୅ٕज़΋ύϥμΠϜ͸ड͚ܧ͍Ͱ͍Δ એݴతɾϦΞΫςΟϒɾؔ਺ίϯϙʔωϯτ Πϛϡʔλϒϧ Javascript/Typescript (6*ϓϩάϥϛϯά 
 ύϥμΠϜ ϓϩάϥϛϯά

    
 ݴޠ )5.-ੜ੒৔ॴ ύϑΥʔϚϯε 
 ୲อͷ࢓ֻ͚ WebAssembly(ͳΜͰ΋) αʔόαΠυ Τοδ खଓత / ϛϡʔλϒϧ ΫϥΠΞϯτ Ծ૝DOMͰղܾ ίϯύΠϧ࣌ʹղܾ 3FBDU #MB[PS $ ɺZFX 3VTU 'SFTIɺ2XJL 3FBDU TWFMUFɺTPMJE
  2. 3FBDUͷಛ௃͸͜ͷΑ͏ͳ̏ཁૉͰޠΒΕΔ એݴత6* 
 એݴత4UBUF Ծ૝%0.  มԽͷ݁ՌͷΈॻ͚͹ྑ͍  6*ϩδοΫͱঢ়ଶͷ෼཭ 

    ঢ়ଶભҠ͕͋Δͱɺதؒతද 
 ݱͰ͋ΔԾ૝%0.ͷΈߋ৽  ߋ৽લޙͷԾ૝%0.ͷൺֱ 
 Ͱࠩ෼ݕ஌ɺ࠷খίετͰ 
 ࣮%0.Λߋ৽ $PNQPOFOUCBFTE  ը໘্ͷίϯϙʔωϯτΛ 
 ୯Ґͱͯ͠ίʔυ෼ׂ  ߏ଄ͱঢ়ଶͱৼΔ෣͍ͱ 
 ελΠϧΛΧϓηϧԽ
  3. ̏ཁૉ͕ἧͬͯߴΠϯλϥΫςΟϒɾߴύϑΥʔϚϯεɾ 
 ߴੜ࢈ੑΛ࣮ݱ͍ͯ͠Δ એݴత6* 
 એݴత4UBUF Ծ૝%0. $PNQPOFOUCBFTE ࠩ෼ߋ৽ʹΑΔએݴతهड़ͱ 


    ࣮ߦ଎౓ͷཱ྆ ౎౓θϩ͔Βએݴͨ͠Ϗϡʔ ͷ׬੒ܥΛߏங ίϯϙʔωϯτ ͸શͯ+4ͷؔ਺ ͱͯ͠ఆٛ ίϯϙʔωϯτ ֊૚ؔ܎Λએݴ తʹهड़ ίϯϙʔωϯτ ͷϝϞϦܰྔͳ ࣸ૾͕Ծ૝%0. มߋ͢΂͖ίϯϙ ʔωϯτͷΈΛߋ ৽͢Δ
  4. 1SPQT 
 ʢҾ਺ʣ %0. 
 จॻߏ଄ ίϯϙʔωϯτ 
 ؔ਺ 


    +BWBTDSJQUؔ਺ 6*' EBUB +49Λɺ)5.-ͱ ಉ͡ɺ%0.ͷҰͭ ͷ࣮૷ͱͯ͠ଊ͑ Δɻ ίʔυྫ Ҿ਺ɿ 
 HSFFUJOH ؔ਺ɿ 
 $PNQPOFOU ໭Γ஋ɿ 
 EJWDMBTT/BNFl0OF 
 ഑Լͷ+49ཁૉ 1SPQT͸ཁ͸Ҿ਺ 
 3FBDUίϯϙʔωϯτʹ౉͢΋ ͷΛͦ͏ݴ͍ͬͯΔ͚ͩ
  5. 1SPQT 
 ʢҾ਺ʣ Ծ૝ %0.Λฦ͢ ؔ਺ 
 ίϯϙʔωϯτ 
 ؔ਺

    
 +BWBTDSJQUؔ਺ ิ଍ɿɹ+49͸3FBDUDSFBUF&MFNFOU ͷߏจ౶ҥ +49΋࣮ࡍʹ͸ 3FBDU&MFNFOUΛ ฦؔ͢਺ɺͰ͋Δ 
  6. 3FBDUͷϧʔτ ΦϒδΣΫτ EJWJElSPPUz 
 EJW ิ଍ɿ3FBDUϓϩδΣΫτͷॳظߏ଄͓ΑͼॳճϨϯμʔͷ 
 ͬ͘͟ΓྲྀΕ 3FBDU 


    &MFNFOU *OEFYIUNM *OEFYKT "QQKT छʑͷίϯϙʔωϯτ 
 πϦʔ͕ͿΒԼ͕Δ DSFBUF3PPU SPPU&MFNFOU SPPUSFOEFS 3FBDU&MFNFOU
  7. 4UPSF 
 TUBUF Ϗϡʔ 
 ίϯϙʔωϯτ 6*' EBUB TUBUF "DUJPO

    
 TFU4UBUF ΠϕϯτϦεφʔ ʹొ࿥͞Εͨߋ৽ ؔ਺͕࣮ߦ ίϯϙʔωϯτؔ਺ͱ ͸ผྖҬʹετΞ͞Ε ͍ͯΔঢ়ଶΛߋ৽ ߋ৽ޙͷTUBUFͰɺ 
 ίϯϙʔωϯτؔ਺͕ ࠶࣮ߦ͞ΕΔ TUBUF͓Αͼߋ৽ؔ਺͸ɺϝϞϦ্ͷͲ͔ͬʹอଘ͞Ε͍ͯ Δɻ ࡶ͕ͩͦΕ͸3FBDU͕஌͍ͬͯΕ͹ྑ͍ࣄ
  8. 1SPQT +49 ७ਮؔ਺ 6*' EBUB TUBUF  TJEF&GGFDU TJEF& ff

    FDU ݱ࣮ʹ͸ɺ6* +49 ΛϦλʔϯ͢Δͱ͍͏ओ໨తҎ֎ ʹɺ෭໨తͷͨΊͷखଓతͳίʔυͷඞཁ͕͋Δɻ 
 FY νϟοτΞϓϦΛ૝ఆ͠ɺαʔόଆͱίωΫγϣ ϯΛுΔॲཧͳͲ ίϯϙʔωϯτͷඳըͱڞʹɺ MJTUFO͢Δඞཁ͕͋Δɻ
  9. 1SPQT +49 ७ਮؔ਺ 6*' EBUB TUBUF  TJEF&GGFDU TJEF& ff

    FDU IPPLT"1*܈ͷɺVTF& ff FDU ͱ͍͏"1*͕૊Έࠐ Έɻ 
 ˠݱ࣮ੈքʹͳΜΒ͔ͷ෭࡞༻Λٴ΅͢ίʔυΛॻ ͚Δɻ ίʔυྫ
  10. 1SPQT 
 Ҿ਺ +49 
 จॻߏ଄ 6*' EBUB TUBUF 

    TJEF&GGFDU TJEF& ff FDU ࠩ෼ݕग़ɾࠩ෼ߋ ৽Λܦ࣮ͯࡍͷ )5.-ʹʜ ίϯϙʔωϯτ 
 ؔ਺ 4UBUF
  11. 1SPQ T +49 TJEF 
 & ff FDU ίϯϙʔω ϯτ

    
 4UBUF VTF& ff FDU ͸࢖Θͳ͍͕ɺαʔό σʔλऔಘ΋Ϛ΢ϯτ࣌ʹ࣮ߦ VTF4UBUF ͸࢖Θͳ͍͕ɺαʔό σʔλ΋ίϯϙʔωϯτ͕࣋ͭzঢ়ଶz Τϥʔڥք ϩʔσΟϯάڥք $PNQPOFOUCBTFE࠶ͼ
  12. Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ

    Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Ծ૝%0.πϦʔ چ ৽ ϦΞϧ%0.πϦʔ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ Τ ϩ 3FBDU͕৽͍͠ 3FBDU&MFNFOUΛ ࡞੒ 3FBDU%0.͕ 
 ࠩ෼ݕ஌ʴ೔%0.ߋ৽